【问题标题】:How to make a n-dimention list with one dimention lists with a loop如何使用带循环的一维列表制作 n 维列表
【发布时间】:2023-03-31 07:03:01
【问题描述】:

我正在学习 python,我一直在尝试制作一个自动列表。例如:

下一个列表,我必须将其拆分以获得分隔字母列表,然后再次加入它们以制作两个分隔字母列表

lists=[['a,b,c,h'],['d,e,f,g']]

print('list length', len(lists))
splited=[]

splited1=lists[0][0].split(',')
print(splited1)  #['a', 'b', 'c', 'h']

splited2=lists[1][0].split(',')
print(splited2)  #['d', 'e', 'f', 'g']


listcomb=[splited1,splited2]

print(listcomb) #[['a', 'b', 'c', 'h'], ['d', 'e', 'f', 'g']]

这就是我想要得到的,一个包含 2 个列表的列表,但如果我必须在该列表中获取更多列表,我想使用 for 循环使其自动运行。

我的尝试,但没有成功

listcomb2=zip(splited1,splited2)
print(listcomb2)

sepcomb = list()
print(type(sepcomb))
for x in range(len(lists)):
    sep=lists[x][0].split(',')
    sepcomb[x]=[sep]
print(sepcomb)

我在拆分字母然后将它们加入新列表时遇到问题。请帮忙

【问题讨论】:

    标签: python list split


    【解决方案1】:

    对您的代码进行一些调整。我们可以看到sepcomb 的长度是0,所以使用append 方法来避免这个问题。由于sepcomb[x]=[sep] 是分配给x-index 但它x index 不存在所以会引发错误

    更改:

    for x in range(len(lists)):
        sep=lists[x][0].split(',')
        sepcomb[x]=[sep]
    

    for x in range(len(lists)):
        sep=lists[x][0].split(',')
        sepcomb.append(sep)
    

    方法二

    sepcomb = list(i[0].split(',') for i in lists)
    

    【讨论】:

    • 感谢您的帮助,这正是我想要的,我是 python 新手,使用 .append 时总是感到困惑
    【解决方案2】:

    您可以简单地执行以下操作:

    final=[splinted1]+[splinted2]
    

    或者直接来自 lists 变量的更好方法是:

    final=[value[0].split(',') for value in lists]
    

    【讨论】:

      【解决方案3】:

      给你:

      lists = [['a,b,c,h'],['d,e,f,g']]
      
      listcomb = []
      for each in lists:
          splited = each[0].split(',')
          listcomb.append(splited)
      print(listcomb)
      

      【讨论】:

        猜你喜欢
        • 2019-07-25
        • 2020-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-04
        • 1970-01-01
        • 2021-01-14
        相关资源
        最近更新 更多