所以,我想知道如何对这个列表进行排序:
list = [
'1',
'China',
'hello',
'2',
'India',
'3',
'America',
'Texas',
'Cowboy'
]列入这份新的清单:
newlist = [
['1', 'China', 'hello'],
['2', 'India'],
['3', 'America', 'Texas', 'Cowboy']
]所以我找到了解决我自己问题的方法,就是这样的代码:
list = [
'1',
'China',
'hello',
'2',
'India',
'3',
'America',
'Texas',
'Cowboy'
]
newlist = []
a = 1
n = 0
for i in list:
rltvList = list[n]
if str(a) == rltvList:
temporaryList = []
a += 1
newlist.append(temporaryList)
temporaryList.append(rltvList)
n += 1原谅我丑陋的代码,因为我是初学者。
最好的做法是先写伪码,然后才能真正钻研这些代码。
以下是我的伪代码逻辑,供你们中的任何人使用:
list;
list /循环遍历list.
list[x] = '1',然后将list[x]附加到temporaryList,直到list[x] = '2';
temporaryList一次又一次地到newList;
temporaryList;
list.结束
我们需要temporaryList,因为我们需要建立列表的list。如果没有temporaryList,它将只是一个列表。
发布于 2022-07-15 16:31:12
已完成:
flat = ['1','China','hello','2','India','3','America','Texas','Cowboy']
target = []
n = 1
for i in flat:
if i == str(n):
target.append([i])
n += 1
else:
target[-1].append(i)
print(target)输出:
[['1', 'China', 'hello'], ['2', 'India'], ['3', 'America', 'Texas', 'Cowboy']]发布于 2022-07-15 18:04:36
更新现有代码,因为如果列表以“5000”开头,它将无法工作并发出错误消息。所以我们要试一试&除了。
以下是新代码:
list= ['4000','this','text','will','be','skipped','1','China','hello','2','India','3','America','Texas','Cowboy']
newlist=[]
a=1
n=0
for i in list:
rltvList= list[n]
if str(a) == rltvList:
temporaryList=[]
a+=1
newlist.append(temporaryList)
try:
temporaryList.append(rltvList)
except Exception:
pass
n+=1
print(newlist)它将输出:
newlist=[['1', 'China', 'hello'],['2', 'India'],['3', 'America', 'Texas', 'Cowboy']]抱歉,我是个初学者。您可以随意分享一些更简单、更优雅的代码。
https://stackoverflow.com/questions/72996995
复制相似问题