在Python中使用Insert?

时间:2016-03-31 19:17:56

标签: python-3.x

我正在编写一个初学者程序,给出字母表的5个首字母:A,B,C,D,E通过选择1,100之间的2个随机数然后使用随机数找到这个数字的有效性数操作来自:

signs = ['+','-','*','/']

它应该给字母一个2个数字一个用于强度,另一个用于有效性: 我无法在字母后插入有效性和强度数字,因此我需要这样的内容:

 ['A',10,43,'B',54,67,'C',9,8,'D',2,22,'E',45,32]

然而我得到了结果:

['A', 110, 110, 110, 110, 110, -72, -72, -72, -72, -72, 'B', 'C', 'D', 'E']

以下是我的代码,非常感谢任何帮助。这是纯粹的初学者编码练习之后我必须把它放到一个函数中:

import random
list_alpha = ["A","B","C","D","E"]
        operator = random.choice(operations)

print(list_alpha)

1 个答案:

答案 0 :(得分:1)

您的问题来自于您始终在1位置插入值。

你可以很容易地改进这个并通过改变一些事情来解决你的问题(注意eval可能很危险!)

list_alpha = []

# just iterate directly over a string
for alpha in 'ABCDE':
    list_alpha.append(alpha)
    for _ in range(2):
        number1 = random.randint(1, 100)
        number2 = random.randint(1, 100)
        operator = random.choice(operations)
        answer = eval('{}{}{}'.format(number1, operator, number2))
        list_alpha.append(answer)

print(list_alpha)

为避免使用eval,您只需将函数放入列表中即可:

import operator    

operations = [operator.add, operator.sub, operator.mul, operator.div]

# Then you just use this:  
answer = random.choice(operations)(number1, number2)