Python遍历列表

时间:2018-11-13 00:52:06

标签: python list loops for-loop

我有一个名为:

的列表
word_list_pet_image = [['beagle', '01125.jpg'], ['saint', 'bernard', '08010.jpg']]

此列表中有更多数据,但我简短了。我正在尝试遍历此列表,并检查该单词是否仅为字母字符(如果属实),将该单词附加到一个新列表中,称为

pet_labels = []

到目前为止,我有:

word_list_pet_image = []
for word in low_pet_image:
    word_list_pet_image.append(word.split("_"))

for word in word_list_pet_image:
    if word.isalpha():
        pet_labels.append(word)
        print(pet_labels)

例如,我试图将单词beagle放入pet_labels列表中,但跳过01125.jpg。见下文。

pet_labels = ['beagles', 'Saint Bernard']

我收到atributeError

  

AtributeError:“列表”对象没有属性“ isalpha”

我确信这与我没有正确遍历列表有关。

4 个答案:

答案 0 :(得分:3)

您似乎在尝试在每个子列表中加入字母单词。列表理解在这里会很有效。

word_list = [['beagle', '01125.jpg'], ['saint', 'bernard', '08010.jpg']]

pet_labels = [' '.join(w for w in l if w.isalpha()) for l in word_list]

>>> ['beagle', 'saint bernard']

答案 1 :(得分:1)

您有列表列表,因此蛮力方法是嵌套循环。喜欢:

for word in word_list_pet_image:
    if word[0].isalpha():
        #append to list

另一个选项可能是单个for循环,但随后将其切片:

</div>

答案 2 :(得分:1)

word_list = [['beagle', '01125.jpg'], ['saint', 'bernard', '08010.jpg']]

为什么不list comprehension(仅当非所有字母字母元素始终位于最后时):

pet_labels = [' '.join(l[:-1]) for l in word_list]

答案 3 :(得分:0)

word_list_pet_image.append(word.split("_"))

.split()返回列表,因此word_list_pet_image本身包含列表,而不是普通单词。