无法阻止python在循环中遍历字符串
Posted
技术标签:
【中文标题】无法阻止python在循环中遍历字符串【英文标题】:Can't stop python from iterating through string in loop 【发布时间】:2021-12-14 23:18:15 【问题描述】:class Hat:
def __init__(self, **kwargs):
self.contents = []
for balltype in kwargs.keys():
for ballnum in range(kwargs[balltype]):
self.contents += balltype
hattrial = Hat(red = 1, blue = 2)
print(hattrial.contents)
我正在尝试创建一个包含输入参数字典中的键的列表,而不是简单地添加我得到的字符串条目:
['r', 'e', 'd', 'b', 'l', 'u', 'e', 'b', 'l', 'u', 'e']
代替:
['red', 'blue', 'blue']
红色出现一次,蓝色出现两次。我已经尝试了一些不同的解决方案,而不是之后仅操作数组,例如下面的尝试,但我所做的一切都没有改变输出。肯定有一个优雅的解决方案,不需要我将角色重新组合在一起吗?
end = len(balltype)
self.contents += balltype[0:end]
self.contents += balltype
【问题讨论】:
【参考方案1】:使用append
class Hat:
def __init__(self, **kwargs):
self.contents = []
for balltype in kwargs.keys():
for ballnum in range(kwargs[balltype]):
self.contents.append(balltype)
hattrial = Hat(red = 1, blue = 2)
print(hattrial.contents)
注意列表中的+=
运算符
这也有效,尝试理解为什么它在此处正确附加+=
class Hat:
def __init__(self, **kwargs):
self.contents = []
for balltype in kwargs.keys():
self.contents += kwargs[balltype] * [balltype]
hattrial = Hat(red = 1, blue = 2)
print(hattrial.contents)
基本上,您的代码问题可以归结为以下几点:
a = []
a += "hello"
a
['h', 'e', 'l', 'l', 'o']
【讨论】:
以上是关于无法阻止python在循环中遍历字符串的主要内容,如果未能解决你的问题,请参考以下文章
防止 Python For 循环通过 char 遍历单个字符串