簡體   English   中英

從字符串列表中的項目中獲取元素

[英]Take elements from items in a list of strings

從給定列表中,從每個項目中取出一個元素來拼寫一個新單詞。

list1=["whiff", "dog", "axe"]
letters=[]
for j in list1:
    for k in j:
        letters.append(k)

answer = letters[4] + letters[6] + letters[9]

有沒有辦法讓它比我迄今為止提出的更簡單? 特別是,有沒有辦法調用列表中項目的元素,而不是整個項目本身? 我不希望list1[0]代表"whiff" ,我只想要它的"f"部分。

...有沒有辦法調用列表中項目的元素,而不是整個項目本身?

好吧,你可以用這樣的東西鏈接下標運算符......

>>> l = ["whiff", "dog", "axe"]
>>> answer = l[0][4] + l[1][1] + l[2][1]
>>> print answer
fox

使用operator.itemgetter

from operator import itemgetter

list1 = ["whiff", "dog", "axe"]

indexes = [4, 6, 9]
getter = itemgetter(*indexes)
print(getter(''.join(list1))) # prints ('f', 'o', 'x')

如果您確實想要訪問所有單詞中所有字母的列表,您可以使用:

>>> list1=["whiff", "dog", "axe"]
>>> from itertools import chain
>>> all_letters = list(chain(*list1))
>>> all_letters
['w', 'h', 'i', 'f', 'f', 'd', 'o', 'g', 'a', 'x', 'e']
>>> answer = all_letters[4] + all_letters[6] + all_letters[9]

chain生成它作為參數獲取的所有迭代的串聯 - 字符串也是可迭代的。 我需要在其結果上調用list ,因為它只返回一個迭代器。

然后我們有一個長列表,而不需要編寫循環。

暫無
暫無

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

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