如何根据python中的不同条件动态创建列表?
文本文件:
Animals
Tiger
Lion
Cat
Mice
Birds
Parrot
Peacock
Hen
chicken
Reptiles
Mammals
我想根据缩进动态分离单词并将其存储在不同的列表中
预期输出:
a=['Animals','Birds','Reptiles','Mammals']
b=['Tiger','Lion','Parrot','Peacock']
c=['Cat','Hen']
d=['Mice','Chicken']
这是我的代码:
a=[]
b=[]
c=[]
d=[]
for i in text:
indent = len(i)-len(i.lstrip())
if indent == 0:
a.append(i)
if indent == 2:
b.append(i)
if indent == 4:
c.append(i)
if indent == 6:
d.append(i)
它提供了预期的输出,但我希望它采用动态方法。
回答
您可以使用defaultdict:
from collections import defaultdict
data = defaultdict(list)
with open('test.txt') as f:
for line in f:
indentation_level = (len(line) - len(line.lstrip())) // 2
data[indentation_level].append(line.strip())
for indent_level, values in data.items():
print(indent_level, values)
0 ['动物'、'鸟类'、'爬行动物'、'哺乳动物'] 1 ['老虎'、'狮子'、'鹦鹉'、'孔雀'] 2 ['猫','母鸡'] 3 ['老鼠','鸡']