如何将列表长度存储到变量中

时间:2017-07-13 07:09:46

标签: python

print("Enter length of elements You want to sort\t")
a=input()
print("Enter those elements")
b=raw_input()
c=len(b)
if(a==c):
    print max(b)
else:
   print("Entered number of elements doesn't matches with length")

这里变量c想要存储列出b的元素的数量,以便它可以与长度进行比较,并产生结果。

但它显示出一些错误。我想知道是否还有其他方法可以将列表长度分配给变量。每次输出显示为

时,在上面的程序中
Enter length of elements You want to sort   
5
Enter those elements
1 2 3 4 5
Entered number of elements doesn't matches with length

即使元素的长度和数量匹配

3 个答案:

答案 0 :(得分:1)

你需要使用len()函数来获取列表的长度,字符串..

>> a = [1, 2, 3, 4]
>> len(a)
  4

在您的代码中,您使用的是raw_input()。 raw_input()接受输入并将其作为字符串返回..因此您需要在列表中转换输入字符串。

print("Enter length of elements You want to sort\t")
a=input()
print("Enter those elements")
b=raw_input()
b1=b.split(',')
c=len(b1)
if(a==c):
    print max(b)
else:
    print("Entered number of elements doesn't matches with length")

然后将输入传递给raw_input为1,2,3,4

答案 1 :(得分:0)

使用raw_input()函数的结果初始化b变量。这是一个字符串(https://docs.python.org/2/library/functions.html#raw_input

然后尝试用b的长度初始化c。字符串对象没有“len”属性,可以通过运行

轻松验证
dir(c)

len()内置函数可以满足你的需要,你可以通过调用

来获取raw_input()字符串的长度。
answer_length = len(c)

但是,直接在输入字符串上调用它而不先解析它将导致您获得用户插入的字符串的长度,而不是您需要排序的元素数。要将每个单独的数字分类到一个列表中,您需要执行以下操作:

input_list = [int(i) for i in b.split()]

该行的作用是将空格字符拆分b中的字符串(raw_input()的结果),然后使用拆分列表中每个元素的整数值填充名为input_list的变量。

然后你可以对它应用一个简单的排序并立即获取排序列表

input_list.sort()

现在使用您的排序列表,您可以获得最小/最大值,执行您可能需要的其他操作。

答案 2 :(得分:0)

Python程序使用函数查找列表中的最大数字:

a=[]
d=0
n=input("Enter the length of the list")
def large(a):
    for i in range(1,n+1):
        b=input("Enter elements")
        a.extend(b)
        d=n-len(a)
        if(len(a)!=n):
            print("add",d,"elements")
        else:
            print "The largest number is:",max(a)
            exit()
large(a)

'''
Output:-
Enter the length of the list5
Enter elements1,2,3,4
('add', 1, 'elements')
Enter elements[5]
The largest number is:5   '''