繁体   English   中英

使用条件将 append 项添加到列表中

[英]Cant append items to a list using conditionals

所以我试图将 append 项添加到基于 .isdigit() 的各种列表中作为条件以及字符串的存在...

例如:

h="hello"

if h.isdigit()==False and "hello" in h:
    print(h)

你好

^这是有效的..

但是,当我尝试将其合并时-

以下内容有效:

user = "jerry"
names = ['max1','max2','jerry1','jerry2','jerry3','steph1','steph2','steph3',"susanB","susanC"]
max = []
jerry = []
steph = []
susan = []

for name in names:
    if user in name:
        for char in name:
            if char.isdigit() and "jerry" in name:
                jerry.append(name)

print(jerry)

['jerry1', 'jerry2', 'jerry3']

但不是:

user = "jerry"
names = ['max1','max2','jerry1','jerry2','jerry3','steph1','steph2','steph3',"susanB","susanC"]
max = []
jerry = []
steph = []
susan = []

for name in names:
    if user in name:
        for char in name:
            if char.isdigit()==False and "susan" in name:
                susan.append(name)

print(susan)

[]

预期的:

['susanB','susanC']

有人可以解释是什么导致了这种行为以及如何纠正它吗?

您忘记在开始时更改名称变量。 将其更改为susan并获得所需的 about。

如果字符串中同时存在jerrysusan ,则当前程序实质上是附加项目。

上面的答案已经解释了解决方案是什么,但我想提供它的具体代码实现并删除一些冗余代码片段。

user = "susan" # You forgot to change this variable.
names = [
    "max1",
    "max2",
    "jerry1",
    "jerry2",
    "jerry3",
    "steph1",
    "steph2",
    "steph3",
    "susanB",
    "susanC",
]
max = []
jerry = []
steph = []
susan = []

for name in names:
    if user in name:
        for char in name:
            if char.isdigit():
                break

        susan.append(name)

print(susan) # Output: ['susanB', 'susanC']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM