簡體   English   中英

列表中兩個元素之和的可能組合

[英]Possible combinations of the sum of two elements of a list

我有一個長度為四的列表(例如,nums = [4、1、8、7])。 我想找到此列表中兩個元素之和的不同可能組合。 我寫了以下代碼,它可以正常工作。 如何使它更簡單? 請注意,我們不能使用任何軟件包。

my_sum = [i + j for i , j in zip(nums, nums[1:])] + [i + j for i , j in zip(nums, nums[2:])]  + [i + j for i , j in zip(nums, nums[3:])] 

我正在提供一種解決方案,它也可以處理重復項。 您可以使用set和list理解,而無需使用任何程序包。 循環遍歷列表,並對所有不同元素求和。 條件i1!=i2可確保您添加不同的元素

情況1

nums = [4, 1, 8, 7]
my_sum = list(set([n1+n2 for i1, n1 in enumerate(nums) for i2, n2 in enumerate(nums) if i1!=i2] ))
# [5, 8, 9, 11, 12, 15]

情況二

nums = [1, 1, 8, 7]
my_sum = list(set([n1+n2 for i1, n1 in enumerate(nums) for i2, n2 in enumerate(nums) if i1!=i2] ))
# [8, 9, 2, 15]

情況3

nums = [4,1,4]
my_sum = list(set([n1+n2 for i1, n1 in enumerate(nums) for i2, n2 in enumerate(nums) if i1!=i2] ))
# [8, 5]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM