当前位置: 首页 > 知识库问答 >
问题:

为什么移除(x)不起作用?

司寇经亘
2023-03-14

如果抛出的结果不是25头25尾(即24-26比),它应该擦除包含结果的列表my_list的内容,并再次循环50抛出,直到结果正好是25-25。

  1. 打印空列表。
  2. 启动while-loop,只有在my_list.count(1)为25时才结束。
  3. 使用随机(1,2)掷硬币。
  4. 将结果输入my_list。
  5. 如果my_list.count(1)不完全是25,那么代码应该擦除列表的内容并重复while循环。

--编码:拉丁语-1-

import random
def coin_tosser():
    my_list = []

    # check if there is more or less 1 (heads) in the list
    # if there is more or less number ones in the list, loop
    # "while". If "coin tosser" throws exactly 25 heads and
    # 25 tails, then "while my_list.count(1) != 25:" turns True

    while my_list.count(1) != 25: # check if there is more or less 1 (heads) in the list
        print "Throwing heads and tails:"
        for i in range(50):
            toss = random.randint(int(1),int(2)) #tried this also without int() = (1,2)
            my_list.append(toss)
        if my_list.count(1) < 25 or my_list.count(1) > 25:
            my_list.remove(1) # remove number ones (heads) from the list
            my_list.remove(2) # remove number twos (tails) from the list

    # after loop is finished (25 number ones in the list), print following:

    print "Heads is in the list",
    print my_list.count(1), "times."
    print "Tails is in the list",
    print my_list.count(2), "times."
    # print
    print my_list

coin_tosser()

共有1个答案

颜云瀚
2023-03-14

正如@Poke所说,list.remove(x)只删除listx的首次出现。我只需在每次迭代中使用一个新的my_list列表,并去掉循环中的整个if

while my_list.count(1) != 25: # check if there is more or less 1 (heads) in the list
    print "Throwing heads and tails:"
    my_list = []
    for i in range(50):
        toss = random.randint(int(1),int(2)) #tried this also without int() = (1,2)
        my_list.append(toss)

如果循环中有25个head,则不需要再次检查,因为您只是在循环条件while my_list.count(1)!=25中检查它

顺便说一句:

my_list.count(1) < 25 or my_list.count(1) > 25
 类似资料:
  • 我想知道为什么执行这段代码时没有抛出(确切地说是ArithmethicException): 代码: null

  • 问题内容: 我期望值可以交换。但是它给出x = 0和y = 1。当我尝试使用C语言时,它会给出正确的结果。 问题答案: 您的陈述大致相当于这种扩展形式: 与C语言不同,在Java中,保证二进制运算符的左操作数在右操作数之前进行求值。评估如下: 您可以反转每个xor表达式的参数顺序,以便在再次评估变量之前完成赋值: 这是一个更紧凑的版本,也可以使用: 但这是交换两个变量的真正可怕的方法。使用临时变量

  • 问题内容: 我正在尝试从JSON网址获取集合。骨干网确实发送了请求并得到了响应,但是在它之后的集合中没有: 这是我的JavaScript: 响应中的JSON 响应中的Content-Type HTTP标头为。 为什么不将其加载到集合中?JSON是否正确? 一些更多的代码: 问题答案: 是异步的。尝试 要么 要么

  • 问题内容: 我有三部分字符串,每个部分用 符号分隔 。例如, 现在,当我使用这样的方法拆分它时: 它包含整个字符串作为单个元素的数组。 但是当我使用这个: 它完美的作品是什么,我想这意味着 现在的数组包含,并分别对指数0,1和2。 我想知道为什么第一次使用时不起作用,因为我在使用 问题答案: 因为字符是在正则表达式中用来标记行尾的保留令牌。因此,您必须使用进行 转义。

  • 问题内容: 我现在有点困惑。我尝试过: 并得到: 但是,我想要: 我的代码有什么问题? 问题答案: 您没有将其分配给。字符串是 不可变的 。 您需要将其分配回。

  • 问题内容: 我正在尝试这样做: 第一行有效: 但是接下来的两个: 和 只是输出 为什么? 问题答案: 因为你需要加入同,只是列出了内容直接,内容不具有完整路径。 范例- 如果未提供完整路径,则在当前目录中搜索,因此当您给出时,将获得正确的列表。 范例- 假设某个文件夹-具有文件-并在其中。 当您执行-时,返回的列表类似于- 即使您在其中提供绝对路径,列表中返回的文件也将具有指向目录的相对路径。您将