在python中,如何用字符串替换列表中的整数?

在python中,如何用字符串替换列表中的整数?,python,Python,例如,如何定义一个函数,使列表中的每个奇数整数都替换为字符串“odd”?谢谢 list = [10 , 11, 12, 13, 14, 15, 16,] 预期结果 [10, 'odd', 12, 'odd', 14, 'odd', 16] 您可以使用列表理解: list = [10 , 11, 12, 13, 14, 15, 16] new_list = [i if i % 2 == 0 else "odd" for i in list] 这里有一个很好的例子说明它的工作原理:您可以使用列

例如,如何定义一个函数,使列表中的每个奇数整数都替换为字符串“odd”?谢谢

list = [10 , 11, 12, 13, 14, 15, 16,]
预期结果

[10, 'odd', 12, 'odd', 14, 'odd', 16]

您可以使用列表理解:

list = [10 , 11, 12, 13, 14, 15, 16]
new_list = [i if i % 2 == 0 else "odd" for i in list]

这里有一个很好的例子说明它的工作原理:

您可以使用列表理解:

list = [10 , 11, 12, 13, 14, 15, 16]
new_list = [i if i % 2 == 0 else "odd" for i in list]

这里有一个很好的例子说明它是如何工作的:

我觉得你应该自己找到解决方案,但无论如何

result = []
for i in list:
    if i % 2 != 0:
        result.append('odd')
    else:
        result.append(i)
或者,也许是推动你前进的东西:

def turn_odd(i):
    if i % 2 != 0:
        return 'odd'
    else:
        return i

list = [10 , 11, 12, 13, 14, 15, 16,]
result = map(lambda x: turn_odd(x), list)

我觉得你应该自己解决问题,但不管怎样

result = []
for i in list:
    if i % 2 != 0:
        result.append('odd')
    else:
        result.append(i)
或者,也许是推动你前进的东西:

def turn_odd(i):
    if i % 2 != 0:
        return 'odd'
    else:
        return i

list = [10 , 11, 12, 13, 14, 15, 16,]
result = map(lambda x: turn_odd(x), list)

单线解决方案可以是:

print [(i,'odd')[i%2] for i in list]

单线解决方案可以是:

print [(i,'odd')[i%2] for i in list]

首先请注意,
list
是为Python中的类型列表保留的,因此我将使用
my_list
。那么你有三个选择:

带有条件的循环

for i in range(0, len(my_list)):
    if (i % 2 != 0):
        my_list[i] = "odd"
for i in range(1, len(my_list), 2):
     my_list[i] = "odd"
列表理解(与上述逻辑相同)

没有条件的循环

for i in range(0, len(my_list)):
    if (i % 2 != 0):
        my_list[i] = "odd"
for i in range(1, len(my_list), 2):
     my_list[i] = "odd"

首先请注意,
list
是为Python中的类型列表保留的,因此我将使用
my_list
。那么你有三个选择:

带有条件的循环

for i in range(0, len(my_list)):
    if (i % 2 != 0):
        my_list[i] = "odd"
for i in range(1, len(my_list), 2):
     my_list[i] = "odd"
列表理解(与上述逻辑相同)

没有条件的循环

for i in range(0, len(my_list)):
    if (i % 2 != 0):
        my_list[i] = "odd"
for i in range(1, len(my_list), 2):
     my_list[i] = "odd"


你读过循环和条件吗?注意:请不要将变量命名为Python内置变量。在本例中,
list
然后屏蔽内置函数
list(迭代器)
是否阅读了有关循环和条件的内容?注意:请不要将变量命名为与Python内置函数相同的名称。在这种情况下,
list
然后屏蔽内置函数
list(迭代器)
可以省略0到
范围的第一个参数。也就是说,人们通常只写
范围(len(list))
。好的。我有一段时间没用python了。现在我将更改它在enumerate(list)中最好对I,x执行
:如果x%2:list[I]='odd'
@Reti43,则要检查的不是索引的奇偶校验,而是内部对象的奇偶校验。因此,您的代码是错误的…第一个参数0到
范围
可能会被忽略。也就是说,人们通常只写
范围(len(list))
。好的。我有一段时间没用python了。现在我将更改它在enumerate(list)中最好对I,x执行
:如果x%2:list[I]='odd'
@Reti43,则要检查的不是索引的奇偶校验,而是内部对象的奇偶校验。因此,您的代码是错误的…反转元组以获得更清晰的信息:
[(x,'odd')[x%2]表示列表中的x]
最好使用元组
(x,'odd')
而不是列表“[x,'odd'],因为元组在循环中构造一次,并且每次都构造一个列表…反转元组以获得更清晰的信息:
[(x,'odd')[x%2]表示列表中的x]
最好使用元组
(x,'odd')
而不是列表`[x,'odd'],因为元组构造一次,而列表每次都通过循环……技术上这不是OP要求的。OP要求替换列表中的奇数元素,而不是用替换的奇数元素生成新列表。这对OP是否重要尚不清楚,但它确实创建了一个新列表。您可以使用
list[:]=…
而不是
new\u list=…
您无论如何都不应该使用
list
作为变量名,因为它会隐藏内置类型。您也可以执行
[“奇数”如果i%2,则列表中的i为i]
技术上这不是OP要求的。OP要求替换列表中的奇数元素,而不是用替换的奇数元素生成新列表。这对OP是否重要尚不清楚,但它确实创建了一个新列表。您可以使用
list[:]=…
而不是
new\u list=…
您无论如何都不应该使用
list
作为变量名,因为它会隐藏内置类型。您也可以执行
[“奇数”操作,如果列表中的i为%2,则执行其他操作]