如何根据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 ['老鼠','鸡']


以上是如何根据python中的不同条件动态创建列表?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>