如何制作带有循环的一维列表

2024-06-16 10:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习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']]

这就是我想要得到的,一个有两个列表的列表,但是如果我必须在这个列表中得到更多的列表,我想用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)

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


Tags: 列表forlen字母lengthlistsseplist
3条回答

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

final=[splinted1]+[splinted2]

或者直接从lists变量中选择更好的方法是:

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

给你:

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

listcomb = []
for each in lists:
    splited = each[0].split(',')
    listcomb.append(splited)
print(listcomb)

对代码进行一些调整。我们可以看到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)

方法2

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

相关问题 更多 >