首页 > 解决方案 > 在 Python 中一次在列表中添加更多值

问题描述

我是 Python 的初学者,我正在尝试解决这个问题。我正在尝试编写一个代码,您可以在其中输入您的姓名和您想捐赠的金额。问题是,根据捐赠的金额,您可以有更多的机会成为赢家。例如。如果您捐赠 10 美元(1 次机会)、20 美元(2 次机会)、30 美元(3 次机会)。我最大的问题是当这个人插入 30 美元时,我无法弄清楚如何解决这个问题,它的名字出现在列表中 3 次等等。我尝试使用“for..inrange():”但没有任何成功。有人可以解释我该怎么做吗?

from random import shuffle
from random import choice

list = []

while True:
    name = str(input('Write your name: '))
    donation = float(input('Enter the amount you want to donate.: $ '))
    list.append(name)
    print('You donated $ {}. Thank you {} for you donation!'.format(donation, name))

    print('=-'*25)
    print('[1] YES')
    print('[2] NO')
    answer = int(input('Would you like to make another donation? '))
    if answer == 1:
        continue
    else:
        shuffle(list)
        winner = choice(list)
        break

print('The winner was: {}' .format(winner))

标签: pythonlist

解决方案


首先不要使用内置类型的名称作为(无意义的)变量名称。更改listentry_list

针对特定问题

  • 计算机会的数量;
  • 多次列出该人的姓名;
  • extend具有重复名称列表的条目列表。

代码:

entry_list = []

while ...
    ...
    chances = int(donation) // 10
    entry_list.extend( [name] * chances )

推荐阅读