Python新的多重列表没有重复。所有新列表与第一个新列表一致

发布于 2025-02-08 08:59:24 字数 898 浏览 1 评论 0原文

当前输出:

['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[]
[]

理想输出:

['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[20,     40,    ,26,    28,     21,    91,     25]
[...]
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)```

Current Output:

['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[]
[]

Ideal Output:

['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[20,     40,    ,26,    28,     21,    91,     25]
[...]
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)```

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦巷 2025-02-15 08:59:24

最好使用控件集来确保您不会添加重复的名称,而不是每次扫描列表(更快)。然后使用ZIP对齐列表。这样的东西:

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)

输出:

['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[20, 40, 26, 28, 21, 91, 25]
['BA', 'CA', 'CO', 'AL', 'NY', 'NV', 'SO']

Best to use a control set to ensure that you don't add duplicate names rather than scanning the list every time (it's faster). Then use zip to align the lists. Something like this:

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)

Output:

['Jay', 'Boon', 'Sue', 'Tim', 'Lia', 'John', 'Abe']
[20, 40, 26, 28, 21, 91, 25]
['BA', 'CA', 'CO', 'AL', 'NY', 'NV', 'SO']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文