Python列表附加True布尔值

查米卡·丰塞卡(Chamika Fonseka)

下面的[incomplete]代码旨在接收长度为xnnx的数字,并返回下一个全数字的数字的值。该代码标识作为函数参数传递的数字中缺少nx之间的数字,并返回(暂时,直到进一步开发该函数)两个列表,原始数字本身以及其各个数字作为列表的成员,以及一个列表,其中数字nx作为成员,而长度为xn的原始数字中存在的那些数字被布尔值True代替

def nextPandigital(n,lower,upper):
    digits = []
    requiredDigits = []

    #Completed loop
    for digit in str(n):
    digits.append(int(digit))

    #Completed loop
    for num in range(lower,upper+1):
    requiredDigits.append(num)

    for number in requiredDigits:
        if str(number) in str(digits):
            x = requiredDigits.index(number)
            #requiredDigits[x] = 'True'
            requiredDigits[x] = True
    return digits, requiredDigits

尽管,对于nextPandigital(1023456789,0,9)Enthought Canopy中的输入参数,应该读取返回[True,True,True,True,True,True,True,True,True,True]的第二个列表,但实际上返回的第二个列表的值是[True,1,True,True,True,True,True,True,True,True]原始requiredDigits列表中的1不替换为True

我知道,有与循环,或代码的一般流程没有问题,当为requiredDigits[x] = True的代码行被注释掉,并且当前注释的代码注释掉的代码工作,因为它的目的是,与所有数字在requiredDigits被替换为字符串值“ True.

我试图解决此问题。但是,我无法查明其来源。我已经考虑过True == 1返回True的事实但是,当在行中将值True替换为False时,requiredDigits[x] = True代码仍将按预期工作。

任何对此问题的答案/帮助/建议/建议将不胜感激。先感谢您。

布莱克金

问题在于使用index查找要分配到的位置。由于True等于1,您误认为True输入的01您要替换的下一个。

一种解决方案是在enumerate遍历列表时使用获取索引,而不是以后需要使用查找索引index

for x, number in enumerate(requiredDigits):
    if str(number) in str(digits):
        requiredDigits[x] = True

通常,更好的解决方案是使用列表理解一次创建列表,而不是从数字开始并在以后替换其中一些:

requiredDigits = [True if num in digits else num for num in range(lower,upper+1)]

我还摆脱了str针对的会员资格测试中不必要的呼叫digits您正在进行子字符串测试,而不是测试数字本身是否在列表中。那可能不会造成错误,因为您关心的数字都是一个数字长,并且列表的字符串表示形式没有任何多余的数字。但总的来说,在不需要时使用字符串操作不是一个好主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python列表中处理布尔值

来自分类Dev

布尔值从false切换为true的日期列表

来自分类Dev

隐藏基于布尔值true false jsp的列表项

来自分类Dev

Python Flask - 无法返回布尔值 true

来自分类Dev

Python:搜索列表并提供布尔值

来自分类Dev

将python列表转换为numpy数组布尔值

来自分类Dev

布尔值与可选值true

来自分类Dev

Python的in(__contains__)运算符返回布尔值,该布尔值既不是True也不是False

来自分类Dev

布尔值为true时的事件

来自分类Dev

重命名true false布尔值

来自分类Dev

布尔值总是返回true吗?

来自分类Dev

Python选择数据返回布尔值true-false和DELETE值true

来自分类Dev

如果布尔值为true,则向下拉列表添加选项

来自分类Dev

长度为n且正好为k个True的布尔值的Pythonic随机列表

来自分类Dev

位向量与布尔值性能列表

来自分类Dev

基于布尔值的排序列表

来自分类Dev

空列表和布尔值

来自分类Dev

如何在if条件中附加布尔值?

来自分类Dev

布尔值(True和False)在Python概念和shell概念中的价值是什么?

来自分类Dev

如何在python JSON字符串处转义true / false布尔值

来自分类Dev

用于布尔值的Python数组?

来自分类Dev

方括号中的Python布尔值?

来自分类Dev

在Python中使用布尔值

来自分类Dev

基本的Python。“布尔值函数”

来自分类Dev

Python中带数字的布尔值

来自分类Dev

Python中If语句中的布尔值

来自分类Dev

用python输入布尔值

来自分类Dev

Python / PyGame从列表中选择一个随机布尔值

来自分类Dev

Python:布尔值列表到二进制字符串