Python列表操作:向string元素添加一个项,使其成为2项列表
假设在Python中,我有一个列表如下:Python列表操作:向string元素添加一个项,使其成为2项列表,python,python-3.x,Python,Python 3.x,假设在Python中,我有一个列表如下: a=['spam','eggs',1001234] 现在我有了值devon,我想将其添加到“spam”中,使其本身成为一个列表,结果如下所示: a=[['spam','devon','eggs',1001234] EditDrew提出了一个很好的问题,因此我将对此进行扩展: 在德文郡之后,我们还收到了一封邮件,希望得到结果 a=[['spam','devon','baloney','eggs',1001234] 最简单的方法是什么? 是否有一种通用方法可
a=['spam','eggs',1001234]
现在我有了值devon
,我想将其添加到“spam”中,使其本身成为一个列表,结果如下所示:
a=[['spam','devon','eggs',1001234]
EditDrew提出了一个很好的问题,因此我将对此进行扩展:
在德文郡之后,我们还收到了一封邮件,希望得到结果
a=[['spam','devon','baloney','eggs',1001234]
最简单的方法是什么?
是否有一种通用方法可以在未知元素是字符串还是列表的情况下追加项目?修改
a[0]
:
>>> a = ['spam', 'eggs', 100, 1234]
>>> a[0] = [a[0], 'Devon']
>>> a
[['spam', 'Devon'], 'eggs', 100, 1234]
关于您的最新问题:
>>> items = ['devon', 'baloney']
>>> a = ['spam', 'eggs', 100, 1234]
>>> a[0] = [a[0]] + items
>>> a
[['spam', 'devon', 'baloney'], 'eggs', 100, 1234]
如果您不确定“垃圾邮件”的位置,请使用列表:
>>> a = ['spam', 'eggs', 100, 1234]
>>> [item if item != 'spam' else [item, 'devon'] for item in a]
[['spam', 'devon'], 'eggs', 100, 1234]
试试这个:
def add_to_first(list, element):
try:
list[0].append(element)
except AttributeError: # Not a list
list[0] = [list[0], element]
items_string = ['spam', 'eggs', 100, 1234]
items_list = [['spam'], 'eggs', 100, 1234]
add_to_first(items_string, 'devon')
add_to_first(items_list, 'devon')
print items_string
print items_list
我得到:
>> [['spam', 'devon'], 'eggs', 100, 1234]
>> [['spam', 'devon'], 'eggs', 100, 1234]
如果列表的第一项是列表,该怎么办?是否确实要执行此操作?也许
'spam'
本来应该是['spam']
。@user2357112,它与来自另一个系统的数据有关,并且取决于更新,在以后的更新发生之前,不知道元素是字符串还是列表。简短的回答是肯定的,我确信:)如果只有一个字符串,为什么不能是一个列表呢?谢谢,我们可能只是要创建一个类来处理这个数据类型,因为我们还有更复杂的情况。这应该是一种把一切联系在一起的巧妙方式。