文章目录
  1. 1. Python 集合
    1. 1.1. 列表——list
    2. 1.2. 元组——tuple
    3. 1.3. 字典——dict
    4. 1.4. Set

Python 集合


列表——list

pyton中的列表,有点类似与java中的数组,也是有序的,可以对其新增,删除元素,但是它的灵活性和功能要比数组强大很多;list使用“[”和“]”表示定义一个列表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'Roy.Yin'

'''
python list
'''

#定义一个空的列表
names = []

names = ['roy','lucy','lily','jack']
print names

#末尾添加元素
names.append('sarah')

#index位子插入元素
names.insert(2,'mark')

#删除元素
names.remove('lucy')

#获取某个位子的元素
print names[0]

#index超过最大值会抛异常,list index out of range
#print names[8]

#list可以使用负数的index来表示倒序索引,如-1表示的倒数第1个元素
print names[-1]

#以堆栈的方式弹出index位子的元素,默认index=0
name = names.pop(1)
print name

#返回元素所在的index值
print names.index('jack')

#返回list的元素个数
print len(names)

#返回元素在列表中出现的次数
print names.count('roy')

names2 = ['tom','sala']
#将name2中的元素添加倒names中
names.extend(names2)
print names

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

#对列表进行排序
names.sort()
#['jack', 'lily', 'roy', 'sala', 'sarah', 'tom']
print names

#列表反转
names.reverse()
#['tom', 'sarah', 'sala', 'roy', 'lily', 'jack']
print names

#使用list实现多维数组
nums = [1,2,[3,4],[4,5,6],7,8]
# 4
print nums[2][1]

#可以使用关键字list,将字符串转化为列表
list1 = list('1234')
print list1

list2 = list('321')
#使用'+'将多个list合并,生成新的list,这点和append不同
print list1+list2

#使用'*'生成重复元素的新的list
print list1*3

#可以使用in判断对象是否在列表中
print '1' in list1

#使用del 删除列表的某个元素
del list1[1]

#也可是使用del删除整个对象
del list1

元组——tuple

python还有另一种有序列表,它叫做元组(不是蛋糕的那个元祖),它和list非常的相似,只是元组一旦初始化后就不能在修改了;元组使用“(”和”)”来定义。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'Roy.Yin'

'''
python tunpl
'''

#定义一个空的tuple
t = ()

#返回tuple的元素个数
print len(t)

user = ('roy','sarah','lucy')

#return roy
print user[0]
#return sarah
print user[-2]

allUser = ('tom',user,'jim')
#('tom', ('roy', 'sarah', 'lucy'), 'jim')
print allUser

#return sarah
print allUser[1][1]

names = ['sarah', 'sala', 'roy']

allUser = ('lisa',names,'jim')
# ('lisa', ['sarah', 'sala', 'roy'], 'jim')
print allUser

allUser[1][1] = '$sala$'
#虽然元组是不可以改变的,但是如果它其中的元素如果是可变对象,那也是可以通过
#持有的引用地址改变值,对于元组来说,它的元素仍然没有改变,因为该元素的引用
#没有改变
#('lisa', ['sarah', '$sala$', 'roy'], 'jim')
print allUser

#当tuple只有一个元素的时候,请使用“,”
a = (1)
#此时a=1,因为括号为计算中的括号
print a

#此时b为元组
b = (1,)
print b

tuple没有像list那么多的新增,删除等方法,因为它是不可变对象

字典——dict

python中还有一种列表,它和java中的map相似,也是键值对(key-value)存储的,查找速度非常快,那就是字典-dict;python的dict也是无序的,并且key需要是唯一的;python中使用大括号“{”和“}”定义。字典的key不一定要是字符串,也可以是其他不可变对象,比如元组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'Roy.Yin'

'''
python dict
'''

user = {'name':'roy','age':18}
print user

# 通过key设置值,可以新增元素,或者修改已存在的键的值
user['tel']='13812348080'
user['age']=28

#{'age': 28, 'tel': '13812348080', 'name': 'roy'}
print user

#通过key获取值 roy
print user['name']

#如果key不存在,会报KeyError异常
#print user['address']

#如果不确定key是否存在,可以使用get方法获取值,不存在只会返回None
print user.get('name')

#同时,get还支持,不存在返回默认值
print user.get('address','中国')

#dict支持嵌套
person = {'name':'roy','age':18,'addr':{'address1':'中国','address2':'美国'}}
#return 中国 也支持层次获取
print person['addr']['address1']

#判断key是否存在dict中
print 'name' in person

#获取字段的长度
print len(person)

#获取dict的所有key
print person.keys()
#获取dict的所以value
print person.values()
#获取dict的键值对
print person.items()

dict1 = {'name':'roy','age':20}
dict2 = {'name':'sarah','addr':'中国'}
#将dict2的元素添加倒dict1中,如果key冲突没救覆盖
dict1.update(dict2)
print dict1

#删除某个键值对,把值返回
print dict1.pop('age')

#删除某个元素
del dict1['name']

Set

set也是python中的列表,和java中的set类似,有的人说set是不能有重复元素的list,但是我们更愿意说它是没有值的dict,它也是无序的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'Roy.Yin'

'''
python set
'''

#生成空set
set1 = set([])
print set1

set1 = set([1,2,3])
print set1

#set([1, 2, 5]),因为set不允许重复值,所以相同的元素只保留一个
print set([1,2,5,2])

#新增元素
set1.add(5)

#删除元素
set1.remove(1)

#pop出元素,即删除,返回key
print set1.pop()

set2 = set([3,6,7])

#取2个set的交集
print set1 & set2

#取2个set的并集
print set1 | set2

文章目录
  1. 1. Python 集合
    1. 1.1. 列表——list
    2. 1.2. 元组——tuple
    3. 1.3. 字典——dict
    4. 1.4. Set