python list 列表(1)

简介: python list 列表(1)

python list 列表

文章目录

python list 列表

1. 查对象(切片)

2. 查索引(index)

3. 插入(append)

4. 增添(extend)

5. 删除 (remove pop del)

5.1 remove

5.2 pop

5.3 del

6. 修改

7. 计数(count)

8. 颠倒(reverse)

9. 排序(sort)

9.1 数字排序

9.2 字母排序

9.2 key 值排序

9.3 按部分字符串排序

9.4 按长度排序

10. 不改变源列表排序(sorted)

10.1 按照字符串中的数字排序

11. 列表脚本操作符

12. 列表函数

13. 列表推导式

14. 列表常用场景

14.1 遍历

14.2 遍历加索引

14.3 多列表遍历

14.3.1 zip

14.3.2 笨办法多列表遍历

14.4 检查列表是否为空

14.5 拷贝一个列表对象

14.6 获取列表中的最后一个元素

14.7 随机获取列表中的某个元素

14.8 list与string的转换

14.8.1 list转换string

14.8.2 string转换list

14.9 list(列表)添加dict(字典)

14.20 txt文件内容转换成列表

1. 查对象(切片)

$ vim list0.py
a=['wuhao','jinxing','xiaohu','sanpang','ligang']
print(a[0]) #取第一个
print “a[1]:”,a[1]          #取第一个
print(a[1]) #取第二个
print(a[-1]) #取最后一个
print(a[1:4]) #取第二个到第四个
print(a[1:]) #取第二个到最后个
print(a[1:-1]) #取第二个到最后个
print(a[1:-1:1]) #从左到右一个一个取
print(a[1::2]) #从左到右隔一个一个取
b=a[3::-1] #从右到左一个一个取
print(b)
print(a[-2::-1])#从右到左一个一个取
print(a[1:-1:-2])#从右到左隔一个一个取
$ python list1.py
wuhao
a[1]: jinxing
jinxing
ligang
['jinxing', 'xiaohu', 'sanpang']
['jinxing', 'xiaohu', 'sanpang', 'ligang']
['jinxing', 'xiaohu', 'sanpang']
['jinxing', 'xiaohu', 'sanpang']
['jinxing', 'sanpang']
['sanpang', 'xiaohu', 'jinxing', 'wuhao']
['sanpang', 'xiaohu', 'jinxing', 'wuhao']
[]

特色版

first_two = [1, 2, 3, 4, 5][0:2]
print(first_two)
# [1, 2]
steps = [1, 2, 3, 4, 5][0:5:2]
print(steps)
# [1, 3, 5]
mystring = "abcdefdn nimt"[::2]
print(mystring)
# 'aced it'

2. 查索引(index)

$ cat list1.py
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxin','xiaohu','ligang','sanpang','ligang']
print(a.index('jinxin'))
first_lg_index = a.index("ligang")
print("first_lg_index",first_lg_index)
little_list = a[first_lg_index+1:]  #切片
second_lg_index = little_list.index("ligang")
print("second_lg_index",second_lg_index)
second_lg_index_in_bgg_list = second_lg_index + second_lg_index + 1
print("second_lg_index_in_bgg_list",second_lg_index_in_bgg_list)
print("sedcond lg:",a[second_lg_index_in_bgg_list])
$ python list9.py
1
('first_lg_index', 3)
('second_lg_index', 1)
('second_lg_index_in_bgg_list', 3)
('sedcond lg:', 'ligang')

3. 插入(append)

$ cat list2.py 
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxing','xiaohu','sanpang','ligang']
list = []          ## 空列表
a.append('xuepeng')  #将数据插入到最后一个位置
print(a)
a.insert(1,"liming") #将数据插入到任意一个位置(有一个查询动作,效率高)
print(a)
numbers = [12,37,5,42,8,3]
even = []
odd = []
while len(numbers) > 0:
  number = numbers.pop()
  if(number % 2) == 0:
     even.append(number)
  else:
     odd.append(number)
print even
print odd
$ python list2.py 
['wuhao', 'jinxing', 'xiaohu', 'sanpang', 'ligang', 'xuepeng']
['wuhao', 'liming', 'jinxing', 'xiaohu', 'sanpang', 'ligang', 'xuepeng']
[8, 42, 12]
[3, 5, 37]

4. 增添(extend)

第一种增添

$ cat  list3.py
#!/usr/bin/python
#!---coding:utf-8----
a = [1,2,3]
b = [4,5,6]
a.extend(b)
print a
$ python list3.py
[1, 2, 3, 4, 5, 6]

第二种增添

listone = [1, 2, 3]
listtwo = [4, 5, 6]
mergedlist = listone + listtwo
print(mergelist)
>>>
[1, 2, 3, 4, 5, 6]

增添" + "的扩展(class)

class User(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
        return User(age)
user_a = User(10)
user_b = User(20)
c = user_a + user_b
print(c)
>>>
User(30)

5. 删除 (remove pop del)

5.1 remove

$ cat list4.py 
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxing','xiaohu','sanpang','ligang']
a.remove(a[0])
print(a)
a.remove('jinxing')
print(a)
$ python list4.py 
['jinxing', 'xiaohu', 'sanpang', 'ligang']
['xiaohu', 'sanpang', 'ligang'] 

5.2 pop

$ cat list5.py
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxing','xiaohu','sanpang','ligang']
a.pop(1) #pop删除时会返回被删除的元素
b=a.pop(1)
print(b)
print(a)
$  python list5.py 
xiaohu
['wuhao', 'sanpang', 'ligang']

5.3 del

$ cat list6.py
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxing','xiaohu','sanpang','ligang']
del a[0]
print(a)
del a[2:4]  #删除从第2个元素开始,到第4个为止的元素(但是不包括尾部元素)
print(a)
$ python list6.py 
['jinxing', 'xiaohu', 'sanpang', 'ligang']
['jinxing', 'xiaohu']

6. 修改

$ cat list7.py 
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxing','xiaohu','sanpang','ligang']
a[1]='haidilao'
print(a)
a[1:3]=['a','b']
print(a)
$  python list7.py 
['wuhao', 'haidilao', 'xiaohu', 'sanpang', 'ligang']
['wuhao', 'a', 'b', 'sanpang', 'ligang']

7. 计数(count)

$ cat list8.py
#!/usr/bin/python
#!---coding:utf-8----
print ['to','be','or','not','to','be'].count('to')
x = [[1, 2],1,1,[1,2],3]
print x.count(1)
print x.count([1,2])
$  python list8.py
2
2
2

8. 颠倒(reverse)

$ cat  list10.py
#!/usr/bin/python
#!---coding:utf-8----
a=['wuhao','jinxin','xiaohu','ligang','sanpang','ligang']
a.reverse()
print(a)
$ python list10.py
['ligang', 'sanpang', 'ligang', 'xiaohu', 'jinxin', 'wuhao']

9. 排序(sort)

9.1 数字排序

  • 数字递增排序
  • 数字递减排序
  • 首字母排序
$ cat  list11.py
#!/usr/bin/python
#!---coding:utf-8----
x = [4,6,1,7,9]
x.sort()
print(x)
x.sort(reverse=True)    
print(x)
$  python list11.py
[1, 4, 6, 7, 9]
[9, 7, 6, 4, 1]

默认是按升序排列,指定 reverse=True 按降序排列

9.2 字母排序

# vowels list
vowels = ['e', 'a', 'u', 'o', 'i']
# sort the vowels
vowels.sort()
print('Sorted list:', vowels)
vowels.sort(reverse=True)
print('Sorted list (in Descending):', vowels)

输出:

Sorted list: ['a', 'e', 'i', 'o', 'u']
Sorted list (in Descending): ['u', 'o', 'i', 'e', 'a']

9.2 key 值排序

第一例:按照第二个值排序

# take second element for sort
def takeSecond(elem):
    return elem[1]
# random list
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# sort list with key
random.sort(key=takeSecond)
# print list
print('Sorted list:', random)

输出:

Sorted list: [(4, 1), (2, 2), (1, 3), (3, 4)]

当把elem[1]改成elem[0],就会按照第一个值排序。

第二例

items = [{'name': 'Homer', 'age': 39},
         {'name': 'Bart', 'age': 10},
         {"name": 'cater', 'age': 20}]
items.sort(key=lambda item: item.get("age"))
print(items)
>>>
[{'age': 10, 'name': 'Bart'}, {'age': 20, 'name': 'cater'}, {'age': 39, 'name': 'Homer'}]

9.3 按部分字符串排序

split() 按空格分离字符串, [-1] 则取出每组里的最后一部分

>>> a = ["John Smith", "Alice Young", "John Scott Brown"]
>>> a.sort(key=lambda x:x.split()[-1])
>>> a
['John Scott Brown', 'John Smith', 'Alice Young']

9.4 按长度排序

>>> a = ["John Smith", "Alice Young", "John Scott Brown"]
>>> a.sort(key=len)
>>> a
['John Smith', 'Alice Young', 'John Scott Brown']
>>> a.sort(key=len, reverse=True)
>>> a
['John Scott Brown', 'Alice Young', 'John Smith']
相关文章
|
3天前
|
索引 Python
Python 中寻找列表最大值位置的方法
本文介绍了Python中找列表最大值及其位置的三种方法:1) 使用内置`max()`和`index()`函数;2) 通过循环遍历;3) 利用`enumerate()`函数和生成器表达式。每种方法均附有示例代码,其中`enumerate()`方法在保证效率的同时代码更简洁。
22 2
|
3天前
|
存储 运维 数据挖掘
Python列表中每个元素前面连续重复次数的数列统计
Python列表中每个元素前面连续重复次数的数列统计
11 1
|
3天前
|
存储 JSON 数据库
Python中列表数据的保存与读取:以txt文件为例
Python中列表数据的保存与读取:以txt文件为例
16 2
|
3天前
|
存储 机器学习/深度学习 数据可视化
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
8 1
|
3天前
|
数据挖掘 计算机视觉 Python
Python实现对规整的二维列表中每个子列表对应的值求和
Python实现对规整的二维列表中每个子列表对应的值求和
7 0
|
3天前
|
存储 数据采集 数据可视化
Python列表到Excel表格第一列的转换技术详解
Python列表到Excel表格第一列的转换技术详解
8 0
|
3天前
|
Python
【Python操作基础】——列表操作
【Python操作基础】——列表操作
|
3天前
|
索引 Python
Python中的列表、元组和字典各具特色
【5月更文挑战第11天】Python中的列表、元组和字典各具特色:列表是可变的,元组不可变,字典亦可变;列表和元组有序,字典无序(但在Python 3.7+保持插入顺序);元素类型上,列表和元组元素任意,字典需键不可变;列表用方括号[],元组用圆括号(),字典用大括号{}表示。列表不适合作字典键,元组可以。选择数据结构应依据实际需求。
22 2
|
3天前
|
JavaScript
DOM 节点列表长度(Node List Length)
`length`属性用于获取DOM节点列表的长度,允许遍历和处理节点。例如,加载"books.xml"到`xmlDoc`,通过`getElementsByTagName("title")`获取所有标题节点,然后使用循环输出每个<title>元素的文本内容。
|
3天前
|
BI Python
深入浅出:讲解Python中的列表推导式
深入浅出:讲解Python中的列表推导式