Python перебирает списки - PullRequest
       11

Python перебирает списки

0 голосов
/ 13 ноября 2018

У меня есть список с именем:

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: у объекта 'list' нет атрибута 'isalpha'

Я уверенэто связано с тем, что я не перебираю список должным образом.

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018
word_list = [['beagle', '01125.jpg'], ['saint', 'bernard', '08010.jpg']]

Почему бы не list comprehension (только если элемент не из всех букв алфавита всегда в конце):

pet_labels = [' '.join(l[:-1]) for l in word_list]
0 голосов
/ 13 ноября 2018

У вас есть списки списков, поэтому метод грубой силы будет заключаться во вложении циклов.как:

for pair in word_list_pet_image:
    for word in pair:
        if word.isalpha():
            #append to list

Другой вариант может быть одиночным для цикла, но затем разрезать его:

for word in word_list_pet_image:
    if word[0].isalpha():
        #append to list
0 голосов
/ 13 ноября 2018

Похоже, вы пытаетесь объединить алфавитные слова в каждом подсписке. Понимание списка будет эффективным здесь.

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']
0 голосов
/ 13 ноября 2018
word_list_pet_image.append(word.split("_"))

.split() возвращает списки, поэтому word_list_pet_image сама содержит списки, а не простые слова.

...