如何在整数字符串上使用eval()函数?
使用一串整数:
myStr = '3848202160702781329 2256714569201620911 1074847147244043342'
如何在保持字符串数据类型的同时计算字符串整数的平均值?这是我在伪代码中的想法:
sum = 0
res = eval(myStr[i] + ' + sum')
avg = res/len(myStr)
回答
如果您想获得该字符串中这些整数的平均值,这是一种方法:
myStr = '3848202160702781329 2256714569201620911 1074847147244043342'
print(sum(lst := [int(x) for x in myStr.split()]) / len(lst))
基本上,您获得该字符串中那些整数的列表的总和,并使用该运算符(忘记名称)将该列表分配给一个变量,同时返回该值,然后将总和除以该列表的长度
EDIT1, 2, 3: 刚刚记住,它被称为walrus operator,一些信息可以在这里找到(似乎比另一个更好)和这里(奇怪的第一个例子),它还需要 Python 3.8 或更高版本
编辑:使用 walrus 运算符背后的原因是它不允许在这个单行中重复代码,否则列表理解将被使用两次(insum和 in len),这可能会影响非常大列表的性能(我希望它是一个单线)