我有一个名为:
的列表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”
我确信这与我没有正确遍历列表有关。
答案 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
本身包含列表,而不是普通单词。