从Python中的对象创建列表

2024-09-30 06:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难用我的代码创建一个数字列表。你知道吗

ListA = [5,1,3,8,4]

LengthB = (len(ListA))


obj0 = ListA[0]
obj1 = ListA[1]
obj2 = ListA[2]
obj3 = ListA[3]
obj4 = ListA[4]

obj01 = int(obj0)
obj11 = int(obj1)
obj21 = int(obj2)
obj31 = int(obj3)
obj41 = int(obj4)

obj010 = obj01+obj11
obj110 = obj01+obj11+obj21
obj210 = obj11+obj21+obj31
obj310 = obj21+obj31+obj41
obj410 = obj31+obj41

ListBnum0 = (obj010 / 2)
ListBnum1 = obj110 / 3
ListBnum2 = obj210 / 3
ListBnum3 = obj310/ 3
ListBnum4 = obj410 / 2


print(ListBnum0)
print(ListBnum1)
print(ListBnum2)
print(ListBnum3)
print(ListBnum4)

FinalForm1 = str(ListBnum0)
FinalForm2 = str(ListBnum1)
FinalForm3 = str(ListBnum2)
FinalForm4 = str(ListBnum3)
FinalForm5 = str(ListBnum4)

基本上,这个程序采用ListA数字,并计算数字后面的数字、数字和后面的数字(如果适用)的平均值。我真正的问题是我如何从ListBnum(0)ListBnum(4)创建另一个数字列表?你知道吗

为什么会返回下面的错误?你知道吗

ListB = list[ListBnum0,ListBnum1,ListBnum2,ListBnum3,ListBnum4]

Tags: 数字intprintstrlistaobj21obj11listbnum3
1条回答
网友
1楼 · 发布于 2024-09-30 06:25:32

你的问题的直接答案是:

new_list = [ListBnum0, ListBnum1, ListBnum2, ListBnum3, ListBnum4]

执行此操作时出错的原因:

ListB = list[ListBnum0,ListBnum1,ListBnum2,ListBnum3,ListBnum4]

…就是list是一个函数,函数调用需要括号来调用它们。你可以这样写:

ListB = list([ListBnum0,ListBnum1,ListBnum2,ListBnum3,ListBnum4])

然而,没有理由这么做。list函数的作用是将任何iterable作为参数,并返回具有相同值的列表。但是[ListBnum0, …]已经是一个列表了,所以你只是无缘无故的复制。你知道吗


同时,整个设计很笨重。最好一次处理整个列表,而不是将其拆分为5个单独的变量,然后逐个处理并将它们合并回一个列表。例如:

ListA = [5,1,3,8,4]
List0 = [int(i) for i in ListA]
def avg(x):
    return sum(x) / len(x)
ListB = [avg(List0[max(i-1, 0):i+2]) for i in range(len(List0))]
ListFinal = [str(i) for i in ListB]

相关问题 更多 >

    热门问题