列表元素取出求助
sn = [['1230','1'],['1230','2'],['1230','3'],['1230','4'],['2345','1'],['2345','2'],['2345','3'],['1111','1'],['1111','2'],['1111'','3'],['1111','4'],['1111','5'],['2222','1'],['2222','2'],['2222','3'],['6547','1'],['6547','2'],['6547','3'],['9852','1'],['9852','2']]以上列表,如我想复制列表里[['xxxx','1']['xxxx','2']]每个相同的前4位的‘1’,‘2’,需要如何实现 假设列表的数是无限多,需要如何实现 访问列表会吧,字符串本身也是一个可迭代对象,你就取出对应字符串之后访问该字符串对应位置的元素
{:10_256:}最佳答案 豆嘉木 发表于 2022-5-17 18:26
访问列表会吧,字符串本身也是一个可迭代对象,你就取出对应字符串之后访问该字符串对应位置的元素
{:10_2 ...
要是列表元素是无限个的呢 2228294101 发表于 2022-5-17 18:36
要是列表元素是无限个的呢
列表元素不可能是无限个,内存放不下,你的意思应该是元素很多,你就用循环遍历列表,每一个字符串都用我的方法比较,只有这种方法
列表里[['xxxx','1']['xxxx','2']]每个相同的前4位的‘1’,‘2’
有点没理解这句话,另外列表未知个数,可以直接 for 循环,列表有多长,for 循环就迭代多长 2228294101 发表于 2022-5-17 18:36
要是列表元素是无限个的呢
一般情况下,列表元素都是通过用户输入存放进去的,既然你要筛选,在放进去之前就分好类,这样就不用遍历了 本帖最后由 jackz007 于 2022-5-17 18:51 编辑
sn = [['1230','1'],['1230','2'],['1230','3'],['1230','4'],['2345','1'],['2345','2'],['2345','3'],['1111','1'],['1111','2'],['1111','3'],['1111','4'],['1111','5'],['2222','1'],['2222','2'],['2222','3'],['6547','1'],['6547','2'],['6547','3'],['9852','1'],['9852','2']]
tn = []
for x in sn:
if len(x) == 4 and (x == '1' or x == '2'):
for k in range(1 , 4):
if x != x:
break
else:
tn . append(x)
print(tn)
运行实况:
D:\\>python x.py
[['1111', '1'], ['1111', '2'], ['2222', '1'], ['2222', '2']]
D:\\> 豆嘉木 发表于 2022-5-17 18:40
一般情况下,列表元素都是通过用户输入存放进去的,既然你要筛选,在放进去之前就分好类,这样就不用遍历 ...
工作性质 ,并不是手动输入,数据上传服务器,我要从服务器上下下来做分析,这个实际上是很多数据,然后有同一个series number,可能会有7-8个数据,然后我只要5个 2228294101 发表于 2022-5-17 18:49
工作性质 ,并不是手动输入,数据上传服务器,我要从服务器上下下来做分析,这个实际上是很多数据,然后 ...
哦哦,那就遍历列表 Twilight6 发表于 2022-5-17 18:40
有点没理解这句话,另外列表未知个数,可以直接 for 循环,列表有多长,for 循环就迭代多长
,xxxx就是前面相同,1,2代表的就是后面不同,我也是用的for,但是不知道怎么只取两个前面元素相同的数据 2228294101 发表于 2022-5-17 18:53
,xxxx就是前面相同,1,2代表的就是后面不同,我也是用的for,但是不知道怎么只取两个前面元素相同的数据
是这个意思吗?参考代码:
sn = [['1230','1'],['1230','2'],['1230','3'],['1230','4'],
['2345','1'],['2345','2'],['2345','3'],['1111','1'],
['1111','2'],['1111','3'],['1111','4'],['1111','5'],
['2222','1'],['2222','2'],['2222','3'],['6547','1'],
['6547','2'],['6547','3'],['9852','1'],['9852','2']]
tn = set()
for x in sn:
if len(x) == 4 and (x == '1' or x == '2'):
if len(set(x)) == 1:
tn.add(x)
print(tn) 豆嘉木 发表于 2022-5-17 18:53
哦哦,那就遍历列表
遍历知道是遍历,但是就是不知道怎么每个相同的i,怎么只取两个数据 Twilight6 发表于 2022-5-17 18:56
是这个意思吗?参考代码:
差不多这个意思,但不完全是 2228294101 发表于 2022-5-17 18:59
差不多这个意思,但不完全是
好吧理解不了你的需求,无能为力了
2228294101 发表于 2022-5-17 18:57
遍历知道是遍历,但是就是不知道怎么每个相同的i,怎么只取两个数据
原先列表array1,中间变量temp,把要的部分放到temp再存入array2,怎么取出元素,比如array1=[['123','1'],['132','2']],你要访问12,就temp=array1+array1,array2=temp Twilight6 发表于 2022-5-17 19:02
好吧理解不了你的需求,无能为力了
晚点我把我的代码放上来,现在在外面,谢谢! 2228294101 发表于 2022-5-17 19:04
晚点我把我的代码放上来,现在在外面,谢谢!
行 豆嘉木 发表于 2022-5-17 18:26
访问列表会吧,字符串本身也是一个可迭代对象,你就取出对应字符串之后访问该字符串对应位置的元素
{:10_2 ...
秒了秒了,如果列表本来不具备这样的操作就很难通过迭代生成以需要生成的对应的元素 Twilight6 发表于 2022-5-17 19:05
行
sn = [['1230','1'],['1230','2'],['1230','3'],['2345','1'],['2345','2'],['2345','3']]
unit = []
unit2=[]
for i in sn:
while i not in unit:
unit.append(i)
break
for x in unit:
for y in sn:
while x == y :
unit2.append(y)
if :
break
print(unit2)
页:
[1]
2