4 回答

TA貢獻1824條經驗 獲得超5個贊
而不是 5 個變量將總和保存在一個列表中。如果你失去循環,你可以在每次迭代中獲取列表的一部分并將你的代碼減少到
main_list = [random.randint(1, 9) for _ in range(25)]
sums = [sum(main_list[i:i+4]) for i in range(0, len(main_list), 5)]
for i in range(len(sums)):
print(f"Total of row {i + 1} >>>", sums[i])
現在您可以放入sums并set()比較大小
sums_set = set(sums)
print(len(sums_set) == len(sums))

TA貢獻1856條經驗 獲得超5個贊
我想你正在尋找這樣的東西:
main_list = [[5,4,6], [1, 2, 3, 4], [4,5,6]]
total = []
for row in main_list:
total.append(sum(row))
for t in total:
print("value : ",t, " is at indices : ", total.indices(t))

TA貢獻1772條經驗 獲得超6個贊
將行添加到數據框并使用df.diff().eq(0)或任何比較
import pandas as pd
row_1_total=3
row_2_total=6
row_3_total=7
row_4_total=5
row_5_total=5
df= pd.DataFrame([row_1_total,row_2_total,row_3_total ,row_4_total ,row_5_total ])
df.diff().eq(0)
print(df.diff().eq(0))
duplicat = df[df.duplicated()]
print(duplicat)

TA貢獻1785條經驗 獲得超8個贊
首先,我建議將總數收集在一個稍微不那么笨重的數據結構中,比如一個列表:
row_total = []
row_total.append(main_list[0] + main_list[1] + main_list[2] + main_list[3] + main_list[4])
row_total.append(main_list[5] + main_list[6] + main_list[7] + main_list[8] + main_list[9])
row_total.append(main_list[10] + main_list[11] + main_list[12] + main_list[13] + main_list[14])
row_total.append(main_list[15] + main_list[16] + main_list[17] + main_list[18] + main_list[19])
row_total.append(main_list[20] + main_list[21] + main_list[22] + main_list[23] + main_list[24])
print(row_total[3])
其次,您可以通過像這樣計算一行中的總數來避免大量重復(假設main_list停止在 24 處):
row_total = [sum(x[0+n:3+n]) for n in range(0, len(x), 3)]]
您的問題的答案將類似于:
from collections import Counter
from random import randint
main_list = [randint(0, 10) for _ in range(25)]
row_total = [sum(main_list[0+n:3+n]) for n in range(0, len(main_list), 3)]
duplicate_totals = {t: c for t, c in Counter(row_total).items() if c > 1}
print(main_list)
# a dictionary of totals that show up twice or more often
print(duplicate_totals)
結果看起來像:
[4, 9, 1, 2, 0, 6, 8, 6, 4, 3, 0, 10, 0, 9, 1, 0, 10, 7, 10, 7, 0, 6, 2, 1, 7]
{17: 2}
添加回答
舉報