首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于python列表,最常见的问题系列二

1 如何获取列表中的最后一个元素

索引列表的元素不仅支持正数还支持负数,正数表示从列表的左边开始索引,负数表示从列表的右边开始索引,获取最后一个元素有两种方法。

a= [1,2,3,4,5,6,7,8,9,10]

print(a[len(a)-1])

print(a[-1])

2 如何对列表进行排列

列表排序有两种方式,一种是列表自带的方式sort,一种是内建函数sorted。复杂的数据类型可通过指定key参数进行排序。由字典构成的列表,根据字典元素中的age字段进行排序

items= [{"name":"Homer","age":39},

{"name":"Bart","age":10},

{"name":"Carter","age":20}]

items.sort(key=lambdaitem:item.get("age"))

print(items)

列表有sort方法,用于对原列表进行重新排序,指定key参数,key是匿名函数,item是列表中的字典元素,我们根据字典中的age进行排序,默认是按升序排列,指定reverse= True 按降序排序。

如果不希望改变原列表,而是生成一个新的有序列表对象,那么可以内置函数sorted,该函数返回新列表。

items= [{"name":"Homer","age":39},

{"name":"Bart","age":10},

{"name":"Carter","age":20}]

new_items=sorted(items,key=lambdaitem:item.get("age"),reverse=True)

print(items)

print(new_items)

3 如何移除列表中的元素

删除列表中的元素有三种方式

第一种方式:remove移除某个元素,而且只能移除第一次出现的元素

a= [,1,2,4,2,3]

a.remove(2)

print(a)

# 如果要移除的元素不在列表中,则抛出ValueError异常

a.remove(7)

## ValueError: list.remove(x): x not in list

第二种方式:del根据指定的位置移除某元素

a= [3,2,2,1]

# 移除第一个元素

dela[1]

print(a)

# 当超出列表的下表索引时,抛出IndexError的异常

dela[8]

## IndexError: list assignment index out of range

第三种方式:pop与del类似,但是pop方法可以返回移除的元素

a= [4,5,8]

print(a.pop(1))

print(a)

# 同样,当超出列表的下表索引时,抛出IndexError的异常

a.pop(7)

## IndexError: pop index out of range

4 如何连接两个列表

listone= [1,2,4]

listtwo= [4,6,8]

mergedlist=listone+listtwo

print(mergedlist)

列表实现了 + 的运算符重载,使得 + 不仅支持数值相加,还支持两个列表相加,只要你实现了对象的__add__操作,任何对象都可以实现 + 操作,如:

classUser(object):

def__init__(self, age):

self.age=age

def__repr__(self):

return"User(%d)"%self.age

def__add__(self, other):

age=self.age+other.age

returnUser(age)

user_a=User(10)

user_b=User(20)

c=user_a+user_b

print(c)

5 如何随机获取列表中的某个元素

importrandom

items= [8,23,45,12,75]

print(random.choice(items))

print(random.choice(items))

print(random.choice(items))

一只看不见的鸟飞过

投下了一闪即逝的影子

那是什么?是你爱的影子

却盛满了

整个宇宙

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180128G0H4P800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券