从给定列表中,从每个项目中取一个元素拼写一个新单词。
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"
部分。
答案 0 :(得分:2)
...有没有办法调用列表中项目的元素,而不是整个项目本身?
好吧,你可以用这样的东西链接下标运算符......
>>> l = ["whiff", "dog", "axe"]
>>> answer = l[0][4] + l[1][1] + l[2][1]
>>> print answer
fox
答案 1 :(得分:0)
from operator import itemgetter
list1 = ["whiff", "dog", "axe"]
indexes = [4, 6, 9]
getter = itemgetter(*indexes)
print(getter(''.join(list1))) # prints ('f', 'o', 'x')
答案 2 :(得分:0)
如果您想要访问所有单词中所有字母的列表,您可以使用:
>>> 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]
链生成它作为参数获取的所有迭代的串联 - 字符串也是可迭代的。我需要在结果上调用list
,因为它只返回一个迭代器。
然后我们有一个长列表,无需编写循环。