Python 使用列表理解访问最后一个列表元素

Python 使用列表理解访问最后一个列表元素,python,list-comprehension,Python,List Comprehension,问题-创建具有可变大小和访问最后一个元素的列表 我把我的问题分为两个函数。 第一个函数-我已经使用正常的追加方法和列表理解完成了第一个函数; 第二个函数-访问最后一个元素 #first code v = [] def creat_v(): size = int(input('size -')) for i in range(0,size): number = int(input('Number - ')) v.append(number) return v pri

问题-创建具有可变大小和访问最后一个元素的列表

我把我的问题分为两个函数。 第一个函数-我已经使用正常的追加方法和列表理解完成了第一个函数; 第二个函数-访问最后一个元素

#first code
v = []

def creat_v():
  size = int(input('size  -'))
  for i in range(0,size):
    number = int(input('Number - '))
    v.append(number)
  return v
print(creat_v())

def last_element():
  return v[len(v)-1]
print(last_element())

#second code
v = []

def creat_v():
  v = [int(input('Number - ')) for i in range(0,int(input('Size - ')))]
  return v
print(creat_v())

def last_element():
  return v[len(v)-1]
print(last_element())
通过执行第二个代码“列表理解”,它打印列表,但返回与第二个函数有关的错误:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    print(last_element())
  File "main.py", line 10, in last_element
    return v[len(v)-1]
IndexError: list index out of range
def creat_v():
  v = [int(input('Number - ')) for i in range(0,int(input('Size - ')))]
  return v

您的代码返回错误,因为在函数中:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    print(last_element())
  File "main.py", line 10, in last_element
    return v[len(v)-1]
IndexError: list index out of range
def creat_v():
  v = [int(input('Number - ')) for i in range(0,int(input('Size - ')))]
  return v
您正在分配局部变量v,而不是更改全局变量v

您可以将全局v添加到此函数中,或者像这样调用此函数:v=create\u v

完整代码:

v = []

def creat_v():
  v = [int(input('Number - ')) for i in range(0,int(input('Size - ')))]
  return v

v = creat_v()
print(v)

def last_element():
  return v[len(v)-1]

print(last_element())

您的代码返回错误,因为在函数中:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    print(last_element())
  File "main.py", line 10, in last_element
    return v[len(v)-1]
IndexError: list index out of range
def creat_v():
  v = [int(input('Number - ')) for i in range(0,int(input('Size - ')))]
  return v
您正在分配局部变量v,而不是更改全局变量v

您可以将全局v添加到此函数中,或者像这样调用此函数:v=create\u v

完整代码:

v = []

def creat_v():
  v = [int(input('Number - ')) for i in range(0,int(input('Size - ')))]
  return v

v = creat_v()
print(v)

def last_element():
  return v[len(v)-1]

print(last_element())