【问题标题】:Appending List Elements to Another List (Python)将列表元素附加到另一个列表 (Python)
【发布时间】:2020-10-29 13:09:36
【问题描述】:

我编写了一些包含新用户和当前用户列表的代码,并检查用户名是否可用。如果不可用,它会输出一条消息,说明它,否则输出一条消息,说明它可用。在此之后,我尝试将 new_users 列表的元素附加到 current_users,条件是它不存在于那里。然后我想打印 current_users 列表以表明发生了更改。

到目前为止,这是我的代码 - 它只打印 current_users 列表而没有更改,这仍然是我的问题所在。

current_users = ['alice', 'bob', 'mary', 'OSCAR', 'Simon']
new_users = ['jack', 'daniel', 'sue', 'mary', 'chris']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user in current_users:
        print(f"{new_user} unavailable\n")
    else:
        print(f'{new_user} available')

if new_user not in current_users_lower:
    current_users_lower.append(new_user)
print(current_users_lower)

感谢您提前提供的任何帮助。我知道问题格式在这里非常重要,所以我已尽力尽可能清楚地提出问题。

谢谢!

【问题讨论】:

  • 感谢编辑我的代码的用户 - 我认为直接从我的 IDE 复制代码会将格式带入帖子中。没有意识到它需要更多的工作。干杯!

标签: python list loops conditional-statements


【解决方案1】:

IIUC,我的建议是将附加添加为for 循环的一部分,同时使用current_users_lower 而不是current_users。总而言之,它最终会是这样的:

current_users = ['alice', 'bob', 'mary', 'OSCAR', 'Simon']
new_users = ['jack', 'daniel', 'sue', 'mary', 'chris']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user in current_users_lower:
        print(f"{new_user} unavailable\n")
    else:
        print(f'{new_user} available')
        print("Appending new user to list")
        current_users_lower.append(new_user)

print(current_users_lower)

【讨论】:

  • 你也应该把new_user改成更低
  • 感谢您的快速回复并帮助我整理问题。非常感谢!!!
  • 干杯 @slowlearner02 如果您有任何其他问题,请回来,我们很乐意为您提供帮助!
【解决方案2】:

你只是缺少一个缩进。

current_users = ['alice', 'bob', 'mary', 'OSCAR', 'Simon']
new_users = ['jack', 'daniel', 'sue', 'mary', 'chris']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user in current_users:
        print(f"{new_user} unavailable")
    else:
        print(f'{new_user} available')
    if new_user not in current_users_lower:
        current_users_lower.append(new_user)
print(current_users_lower)

【讨论】:

  • if 语句没有缩进
  • 不敢相信它像缩进错误一样简单。谢谢!
【解决方案3】:

您的问题似乎是您只是将 new_users 列表的最后一项附加到 current_users_lower。尝试添加将列表附加到 for 循环的 if 语句。

current_users = ['alice', 'bob', 'mary', 'OSCAR', 'Simon']
new_users = ['jack', 'daniel', 'sue', 'mary', 'chris']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user in current_users:
        print(f"{new_user} unavailable\n")
    else:
        print(f'{new_user} available')

    if new_user not in current_users_lower:
        current_users_lower.append(new_user)

print(current_users_lower)

【讨论】:

  • 谢谢!这里的每个人都做出了如此积极和快速的反应。不知道为什么我现在这么害怕发布这个哈哈
【解决方案4】:

这是因为该语句不在for语句中。

 current_users = ['alice', 'bob', 'mary', 'OSCAR', 'Simon']
new_users = ['jack', 'daniel', 'sue', 'mary', 'chris']

current_users_lower = [user.lower() for user in current_users]

for new_user in new_users:
    if new_user in current_users:
        print(f"{new_user} unavailable\n")
    else:
        print(f'{new_user} available')
        current_users_lower.append(new_user)
print(current_users_lower)

【讨论】:

    【解决方案5】:

    使用集合操作。它使代码变得简单。

    current_users = ['alice', 'bob', 'mary', 'OSCAR', 'Simon']
    new_users = ['jack', 'daniel', 'sue', 'mary', 'chris']
    
    current_users_lower = set([user.lower() for user in current_users])
    new_users = set([user.lower() for user in new_users])
    
    print(f'{new_users.intersection(current_users_lower)} are unavailable')
    really_new = new_users.difference(current_users_lower)
    print(f'{really_new} are available')
    
    print(current_users_lower.union(new_users))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多