Python入门(二)列表、字典、字符串、元组、集合
列表list
什么是列表:Python内置的一种数据类型是列表,list是一种有序的集合,可以随时添加和删除其中的元素
创建List列表的方法
L = ['杨俊辰',‘啦啦啦’,'Tom']
empty_list = [] :空列表
List列表索引
L = ['Tom','Lucy','Jack']
0 1 2
索引元素‘Lucy’:print L[1]
倒序索引元素jack:print[-1]
List列表编辑操作
在list末尾添加一个元素:
L = ['Tom','Lucy','Jack']
L.append('辰毒秀')
print(L)>>Tom,Lucy,Jack,辰毒秀
在指定位置添加一个元素:
L = ['Tom','Lucy','Jack']
L.insert(0,'辰毒秀')
print(L)>>辰毒秀,Tom,Lucy,Jack
删除list中的元素:
L = ['Tom','Lucy','Jack']
L.pop(0)<<<删除制定位置元素 或者 del L[0]
L.remove('Lucy')<<<删除制定的元素(注:如果list里面有多个一样的元素,那么只会删除一个;如果删除的元素不存在会报错)
print(L)>>Tom
修改list中的元素:
L = ['Tom','Lucy','Jack']
L[0] = '辰毒秀'
print(L)>>辰毒秀,Lucy,Jack
某个元素在列表里的数量:
L = ['辰毒秀','Lucy','Jack']
count = L.count('辰毒秀')
print(count)>>>1
清空列表:L.clear()
复制列表:new_L = L.copy()
反转列表:L.reverse()
列表排序:L.sort() L.sort(reverse = True)倒序排序
把一个list(L2)合并到另一个list(L1):L1.extend(L2)
查询某个元素的下标:index('辰毒秀')
多元数组列表索引方法
L = [1,2,3,['a','b',[1,2,3]]]
print(L[3][2][1])>>>2
字典dict
名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value。
eg:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
d1 = {}<<<空字典>>>d2 = dict()
字典操作
增加字典元素:
d1['name'] = '辰毒秀'
d2['age']= 18
d3.setdefault('class','双子座')#key如果存在,不会修改原来的值
print(d3)>>>
{'name'='辰毒秀','age'=18,'class'='双子座'}
修改字典元素:
d1['name']='辰毒秀'
字典取值:
print(d1['name'])#若key不存在,返回key error
print(d1.get['name'])#若key不存在,返回None
print(d1.keys())#取到字典里所有的key
print(d1.values())#取到字典里所有的value
删除字典元素:
d1.pop('name')
popitem()>>>随机删除一个key
清空字典:d1.clear()
把一个字典加到另一个字典:d1.update(d2)
同时输出key和value的方法
for k,v in users.items()
print('%s ===>%s'%(k,v))
字符串
strip
s.strip():去除空格#只能去掉两边的空格和换行符(\n)
s.lstrip():去掉左边的空格
s.rshtrip():去掉右边的空格
count
s.count('c'):统计一个元素在字符串/列表里面出现的次数
index
s.index('a'):找下标#如果元素不存在那么报错
find
s.find('a'):找下标#如果元素不存在那么返回-1
capitalize
s.capitalize():首字母大写
upper、lower
s.upper():全部变成大写
s.lower():全部变成小写
replace
s.replace('被替换','替换'):替换原来字符串
endwith、startwith
'ad.xls'.endswith('xls'):判断是不是以**结尾的#返回值:True&False
'abc'.startswith('a'):判断是不是以**开头的#返回值:True&False
isspace:是否为空格
isupper:是否为大写
islower:是否为小写
isalnum:没有特殊符号就返回True
isalpha:没有数字、特殊符号返回True
isdigit:判断是否为整数
'111'.zifill(5)>>>00111:字符串长度不够自动补零
format:占位格式化
username='abc'
today = '星期一'
s2 = '欢迎{},今天是{}.'
print(s2.format(username,today))
format_map:只能传字典
s2.format_map({'username':'abc',
'phone':12345})
split:按照某个字符串分割,把分割后的元素放在一个list里
#如果指定的字符串不存在,那么就把整个字符串放到list里面
users = 'a,b,c'
result = users.split(',')
print(result)
>>['a','b','c']
join:把list变为字符串
Li=[a,b,c]
print('+'.join(Li))
>>a+b+c
字符串格式化
username = '小黑'
s = '欢迎%s'%username
%s:可以为任何类型
%d:必须为整数
%f:必须为小数 #%.2f(保留两位小数)
元组tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
t = ('Adam', 'Lisa', 'Bart')
t.index():找小标
t.count():有几个元素
改变元组的情况:
t = ('a', 'b', ['A', 'B'])
L=t[2]
L[0]='x'
print t
集合set
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的
s = set(['A', 'B', 'C'])
s= {1,2,3,4}
取交集
s1 = {1,2,3,4,5}
s2 = {3,4,5,6,7}
print(s1.intersection(s2)) 或者 s1 & s2
>>>{3,4,5}
※非空即真,非零即真
要求:必须包括大写字母、小写字母、数字、特殊字符
import string
password = input("请输入密码:").strip()
if password:
print('输入不为空')
else:
print('密码不能为空')
p_set = set(password)
if p_set.intersection(set(string.ascii_uppercase)) and p_set.intersection(set(string.ascii_lowercase)) and p_set.intersection(set(string.digits)) and p_set.intersection(set(string.punctuation))
print ('密码合法')
string.ascii_uppercase:大写
string.ascii_lowercase:小写
string.digits:整数
string.punctuation:特殊字符
取并集
s1 = {1,2}
s2 = {3,4}
print(s1.union(s2)) 或者 s1 | s2
>>>{1,2,3,4}