打印唯一数字的总和

时间:2018-06-03 12:40:22

标签: python

我想这样打印答案" 15"但是我不确定我将如何准确地解决这个问题,我希望列表可以用于任何数字集,以便" int(input())可以工作。

到目前为止,这是我的代码:

x = [5,1,2,3,4,5]
xs = [x for i in range(x)]
print(sum([xs[i] for i in range(len(xs))
  if xs[i] not in xs[:i] + xs[i + 1:]]))

2 个答案:

答案 0 :(得分:2)

只需汇总列表的set

sum(set(x))

set将(有效)删除重复项。

如果你input要求总和的元素;你需要将你得到的字符串转换为整数列表; e.g;

inp = input() # e.g. '1,2,3,4,5'
x = [int(i) for i in inp.split(',')]
# or directly remove the duplicates:
x = set(int(i) for i in inp.split(','))

只有int(input())无效,因为您无法直接获得列表;像[int(i) for i in input()]这样的东西可能但不是很好的设计...

这一切都取决于你想要的输入。

答案 1 :(得分:1)

您可以使用set创建唯一列表。

sum(set(x))
  

{1,2,3,4,5}

你可以总结一下

  <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">

        <item android:id="@+id/action_search"
            android:icon="@android:drawable/ic_menu_search"
            android:title="Search"
              android:iconifiedByDefault="false"
            app:showAsAction="always"
            app:actionViewClass="android.support.v7.widget.SearchView"/>
  

15