首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python新的多个列表,没有重复。所有新列表都与第一个新列表对齐。

Python新的多个列表,没有重复。所有新列表都与第一个新列表对齐。
EN

Stack Overflow用户
提问于 2022-06-15 19:05:10
回答 1查看 30关注 0票数 -2

当前产出:

代码语言:javascript
复制
['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[]
[]

理想产出:

代码语言:javascript
复制
['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[20,     40,    ,26,    28,     21,    91,     25]
[...]
代码语言:javascript
复制
NamesFromForum = ['Jay','Boon','Jay','Sue','Tim','Lia','Lia','John','John','Abe']
AgesFromForum = [20,40,30,26,28,21,18,91,10,25]
LocFromForum = ['BA','CA','NM','CO','AL','NY','TX','NV','MN','SO']

NameNoDup = []
ageAlignName = []
LocAlignName =[]

for x in NamesFromForum:
    if x not in NameNoDup:
        NameNoDup.append(x)

for y in AgesFromForum:
    for x in NamesFromForum:
        if x not in NameNoDup:
            AgesFromForum.append(y)

for z in LocFromForum:
    for x in NamesFromForum:
        if x not in NameNoDup:
            LocFromForum.append(z)


print(NameNoDup)
print(ageAlignName)
print(LocAlignName)```
EN

回答 1

Stack Overflow用户

发布于 2022-06-15 19:17:11

最好使用控件集来确保不添加重复的名称,而不是每次扫描列表(速度更快)。然后使用zip对齐列表。就像这样:

代码语言:javascript
复制
NamesFromForum = ['Jay','Boon','Jay','Sue','Tim','Lia','Lia','John','John','Abe']
AgesFromForum = [20,40,30,26,28,21,18,91,10,25]
LocFromForum = ['BA','CA','NM','CO','AL','NY','TX','NV','MN','SO']

NameNoDup = []
ageAlignName = []
LocAlignName =[]

nameSet = set()

for name, age, loc in zip(NamesFromForum, AgesFromForum, LocFromForum):
    if name not in nameSet:
        NameNoDup.append(name)
        ageAlignName.append(age)
        LocAlignName.append(loc)
        nameSet.add(name)

print(NameNoDup)
print(ageAlignName)
print(LocAlignName)

输出:

代码语言:javascript
复制
['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[20, 40, 26, 28, 21, 91, 25]
['BA', 'CA', 'CO', 'AL', 'NY', 'NV', 'SO']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72636640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档