我想将字符串中的每个type Book struct {
ID primitive.ObjectID `json:"id,omitempty" bson:"id,omitempty"`
Name string `json:"name,omitempty" bson:"name,omitempty"`
Author string `json:"author,omitempty" bson:"author,omitempty"`
ISBN string `json:"isbn,omitempty" bson:"isbn,omitempty"`
更改为'0'
,但它完全没有改变。
'2'
答案 0 :(得分:4)
ch
循环中的变量for
是一个独立的实体,与列表元素无关。您可以使用以下1个班轮列表理解:
>>> nums = ['0','0','1','1']
>>> nums = [w.replace('0', '2') for w in nums]
>>> nums
['2', '2', '1', '1']
>>>
答案 1 :(得分:2)
这不是修改数组条目(按值)的方式,可以使用索引代替:
for i, ch in enumerate(nums):
if ch == '0':
nums[i] = '2'
答案 2 :(得分:2)
ch
变量仅包含列表中项目的值。
您可以通过列表理解来做到这一点:
[ch if ch != '0' else '2' for ch in nums]
或带有for循环
nums = ['0','0','1','1']
new_nums = []
for ch in nums:
if ch == '0':
new_nums.append('2')
else
new_nums.append(ch)
答案 3 :(得分:1)
您更新变量ch
的值,而不用引用index
更新列表的值。
需要使用索引值的引用来更新列表值。
nums = ['0','0','1','1']
for ch in range(0,len(nums)):
if nums[ch] == '0':
nums[ch] = '2'
print(nums)
输出:
['2', '2', '1', '1']
答案 4 :(得分:0)
您的变量“ ch”是for循环的局部变量,仅从num中“提取”信息,更改其值不会更改列表中的元素。
尝试一下:
For index, ch in enumerate(nums):
if ch == ‘0’:
nums[index] = ‘2’