如何在Python中创建One-Hot通配符字符串?解决赋值报错问题
Python实现One-Hot通配符字符串的解决方法
你遇到的错误是因为Python中的字符串是不可变对象,无法像C语言那样直接通过索引修改单个字符,所以wildcard[i][j]="1"这种直接赋值的写法会报错。下面提供两种可行的解决方法:
方法1:字符串拼接(简洁高效)
利用字符串乘法和拼接直接生成目标字符串:
wildcard = [] length = 4 for i in range(length): # 前i位是x,中间第i位是1,剩余位是x target_str = 'x' * i + '1' + 'x' * (length - i - 1) wildcard.append(target_str) print(wildcard) # 输出: ['xxx1', 'xx1x', 'x1xx', '1xxx']
方法2:借助可变列表(贴近原思路)
先用可变的列表构造字符序列,再转换为字符串:
wildcard = [] length = 4 for i in range(length): # 初始化全x的列表 char_list = ['x'] * length # 修改对应位置为1 char_list[i] = '1' # 列表转字符串后加入结果 wildcard.append(''.join(char_list)) print(wildcard) # 输出: ['xxx1', 'xx1x', 'x1xx', '1xxx']
内容的提问来源于stack exchange,提问作者Rutuja14
相关产品推荐
相关产品推荐

