簡體   English   中英

Python列表:按索引連接列表

[英]Python lists: join list by index

我想在Python 3.3中通過索引將列表加入到字符串中。 我可以為彼此跟隨的項目執行此操作,但我想僅通過索引訪問它。

這工作:

list = ['A', 'B', 'C', 'D']
partList = "".join(list[1:3])
-> BC

但是我怎樣才能做到這一點(它不起作用):

list = ['A', 'B', 'C', 'D']
partList = "".join(list[0,3])
-> AD

您不能使用切片表示法將列表切片為任意塊。 對於一般情況,你可能最好的選擇是使用索引列表來構建列表理解。

mylist = ['A', 'B', 'C', 'D'] # the full list
indices = [0, 3] # the indices of myList that you want to extract

# Now build and join a new list comprehension using only those indices.
partList = "".join([e for i, e in enumerate(mylist) if i in indices])
print(partList) # >>> AD

正如DSM的評論所指出的那樣,如果你關注效率,你知道你的指數列表將是“友好的”(也就是說,它不會有任何指數對於你正在削減的列表而言太大) ,您可以使用更簡單的表達式而不需要enumerate

partList = "".join([mylist[i] for i in indices])

你打算執行的不是切片而是選擇。

我能想到的最接近的可能性是使用operator.itemgetter

>>> from operator import itemgetter
>>> mylist = ['A', 'B', 'C', 'D']
>>> ''.join(itemgetter(0,3)(mylist))
'AD'

如果需要使用變量,請使用splat運算符

index = (0,3)
''.join(itemgetter(*index)(mylist))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM