有一个包含一些随机数的数字列表。我正在对这些数字应用条件,进行一些计算,并将结果值存储在多个列表中。但我面临的唯一问题是,我无法在所有列表中存储等量的数字。假设如果该列表的条件没有满足,那么0
应该在那里,但这不会发生在我的程序中。在我的程序中,数字列表是:number = [10, 9, 14, 17, -2, -3, 18, 25]
,条件如下:
多个列表包括:
firstList = []
secondList = []
thirdList = []
forthList = []
fifthList = []
sixthList = []
我的做法:
number = [10, 9, 14, 17, -2, -3, 18, 25]
firstList = []
secondList = []
thirdList = []
forthList = []
fifthList = []
sixthList = []
for num in number:
if num ==0:
firstList.append(0)
else:
firstList.append(0)
if 0 < num <= 12:
cal = num * 2
secondList.append(cal)
else:
secondList.append(0)
if 12 <= num <= 15:
cal = num * 2
cal2 = num * 4
secondList.append(cal)
thirdList.append(cal2)
else:
thirdList.append(0)
if 15 < num <= 20:
cal = num * 2
cal2 = num * 4
cal3 = num * 6
secondList.append(cal)
thirdList.append(cal2)
forthList.append(cal3)
else:
forthList.append(0)
if num > 20:
cal = num * 2
cal2 = num * 4
cal3 = num * 6
cal4 = num * 4
secondList.append(cal)
thirdList.append(cal2)
forthList.append(cal3)
fifthList.append(cal4)
else:
fifthList.append(0)
if num < 0:
cal5 = num * 10
sixthList.append(cal5)
else:
sixthList.append(0)
print("list1: " , firstList)
print("list2: " , secondList)
print("list3: " , thirdList)
print("list4: " , forthList)
print("list5: " , fifthList)
print("list6: " , sixthList)
输出:
list1: [0, 0, 0, 0, 0, 0, 0, 0]
list2: [20, 18, 0, 28, 0, 34, 0, 0, 0, 36, 0, 50]
list3: [0, 0, 56, 0, 68, 0, 0, 0, 72, 0, 100]
list4: [0, 0, 0, 102, 0, 0, 108, 0, 150]
list5: [0, 0, 0, 0, 0, 0, 0, 200]
list6: [0, 0, 0, 0, -20, -30, 0]
期望输出:
list1: [0, 0, 0, 0, 0, 0, 0, 0]
list2: [20, 18, 28, 34, 0, 0, 36, 50]
list3: [0, 0, 56, 68, 0, 0, 72, 100]
list4: [0, 0, 0, 102, 0, 0, 108, 150]
list5: [0, 0, 0, 0, 0, 0, 0, 200]
list6: [0, 0, 0, 0, -20, -30, 0, 0]
尝试这样的方法,使用列表理解。首先关注每个列表,而不是条件。还要注意
else 0
,在不满足条件的情况下,它将用0填充产出:
下面是一个快速解决方案,您可以用零初始化所有列表,并使用索引更新列表:
输出:
考虑到你想要一个均匀分布的数字,这意味着你得到的所有数字都有相同的概率,你可以做以下事情:
样本均匀分布在半开放的区间[low,high)(包括low,但不包括high)。换句话说,给定区间内的任何值都同样可能由均匀分布得出
相关问题 更多 >
编程相关推荐