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

时间:2016-04-05 00:14:31

标签: python

例如,我如何定义一个函数,以便列表中的每个奇数整数都替换为字符串' odd'?感谢

list = [10 , 11, 12, 13, 14, 15, 16,]

预期结果

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

5 个答案:

答案 0 :(得分:1)

我觉得你应该自己解决这个问题,但无论如何......

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)

答案 1 :(得分:1)

单行解决方案可以是:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以使用列表理解:

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

以下是一个很好的例子:if/else in Python's list comprehension?

答案 4 :(得分:0)

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

带条件的循环

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

列表理解(与上述逻辑相同)

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

没有条件的循环

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