Python List/Tutle/Set/Str/Dict

name = ['wuchao','jinxing','xiaohu','sanpang','ligang']
#用中括号括起来的是列表,可以增删改查。
#列表的元素索引是从0开始的  0  1  2  3 ..
#
print(name[3])            #中括号里的是元素的位置
print(name[1:3])          #取左不取右
print(name[-1])           #取最后一个
print(name[1:-1])
print(name[1:-1:1])       #从左到右一个一个去取  最后一个1是步长
name2 = name[:]           #切name列表的全部元素
print(name2)              #此时name2和name一样
#
name.append('tianxi')    #增加的元素在列表的最末尾
name.insert(1,'tianxi')  #1就是将新元素插入的索引值
#
name[1] = 'tiantian'     #切片到要更换元素的位置,直接赋值
name[1:3] = ['tiantian','shiwei'] #多个元素时,需要赋值给列表
#
name.remove('jinxing')   #直接删除元素,
name.pop(1)
name3 = name.pop(1)    #通过索引删除,并打印出所删除的元素
name.clear()           #清空该列表所有元素
del name[0]            #可以删除任意元素和列表(列表直接删除并不是清空列表)

#其他操作
['wuchao','jinxing','xiaohu','sanpang','ligang'].count('xiaohu')
#计算元素出现在列表的次数
a = [1,2,3]
b = [4,5,6]
a.extend(b)            #把列表b放到列表a,b并没有变化
c = name.index('xiaohu')
print(c)               #找到元素在列表中的索引

name.reverse()
print(name)            #将列表中元素位置倒过来

x = [4,5,6,8,1,2,9]
x.sort()                         #将列表中的数字进行排序
x.sort(reverse=True)            #列表中的元素排序后再倒过来
print(x)#[1,2,4,5,6,8,9]

#身份判断
type(name) is list             #判断name是否是一个列表,list是列表的意思

#元组 typle
#元组可以理解为只读列表,不同的是[]改为()
#创建元组是,只有一个元素时,在元素后边加 ,

name = ('wuchao','jinxing','xiaohu','sanpang','ligang')
print(name[1:3])        #和列表读取一样
#集合   把不同的元素组成在一起   集合中的元素都是不可变得,而且无序
#可哈希 = 不可变类型
#set(可变集合)  frozenset(不可变集合)
# s = set('abcl li')
# s1 = ['li','lin','li']
# print(set(s1))
# print(s)  #{'b', 'c', 'i', 'a', ' ', 'l'}   (去重复)

li = [2,3,'lin']
s = set(li)
# print(2 in s)  #True
# print('li' in s)  #False
# s.add('uu')
# print(s)   # {2, 3, 'uu', 'lin'}
# s.update('ops')
# print(s)   #  {2, 3, 'lin', 's', 'p', 'o', 'uu'}
s.update([12,'eee'])  # {'eee', 2, 3, 12, 'lin'}
print(s)
a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
print(a.intersection(b))   #{4, 5}   intersection交集
print(a.union(b))       #{1, 2, 3, 4, 5, 6, 7, 8}   union 并集
print(a.difference(b))  #{1, 2, 3}   ifference  差集  in a not in b
print(a.symmetric_difference(b))  #{1, 2, 3, 6, 7, 8}  symmetric_difference 对称差集
print(a | b)  #{1, 2, 3, 4, 5, 6, 7, 8}
print(a-b)  #{1, 2, 3}
print(b-a)  #{8, 6, 7}
print(a^b)  #{1, 2, 3, 6, 7, 8}
print(a&b)  #{4, 5}
print(a.issuperset(b))  #False    判断 a>b
print(a.issubset(b))     #False   判断 a<b
#字符串  string
a = "Let's go"
print(a)
print('lilinpei'[3:])   #切片和列表相同

print('li' in  'lilinpei')  #True   判断字符串是否在字符串里

print('linpei is a good teacher')
print('%s is a good teacher'%'linpei')
#%s  可替换的字符串(多个字符串用,隔开)  %d  可替换的整形

#字符串拼接
a = '123'
b = 'abc'
c = '---'.join([a,b])   #通过‘---’把拼接的字符串拼接起来,可以为空字符串
#[a,b]可以,(a,b)也可以
#字符串内置方法
#重要的
st = 'hello kitty {name} is {age}'
print(st.count('l'))   #查询字符串中'l'的个数
print(st.startswith('he'))  #判断某个内容是否是开始,True或False
print('abc'.center(20,'-'))  #--------abc---------,字符串居中,用-填充
print(st.find('t'))    #寻找内容在字符串中的索引位置,将索引值返回
print(st.format(name = 'linpei',age = 24))   #(格式化输出的另
一种方式)在字符串中添加变量,可赋值
print('  My name
'.strip())                                #My name
#print('ok')                  #把开始和结尾的空格和换行符去掉   ok
print('My name'.replace('n','f',1))     #My fame,替换内容,1为替换次数
print('My name is linpei'.split(' '))  #把字符串用空格(内容)分成列表
#['My', 'name', 'is', 'linpei']
print('abc'.islower())   #判断字符串是否都是小写
print('ABC'.isupper())   #判断字符串是否都是大写




#只用知道就行
print(st.capitalize())   #首字母进行大写
print(st.endswith('y'))    #判断某个内容是否是结尾,True或False
print(st.expandtabs())
print(st.format_map({'name':'linpei','age':24}))   #同上
print(st.index('t'))   #同find形同,找不到该内容后回报错
print('154651sd'.isalnum())   #判断是否只包含字母或数字
print('2100'.isdecimal())    #判断字符串是否是10进制
print('123'.isdigit())     #判断是否是一个整形(整数)
print('123.13'.isnumeric())  #同上
print('45abc'.isidentifier())   #判断是否是一个非法变量(不能以数字开头)
print('  '.isspace())   #判断是否是空格
print('My Name Is Linpei'.istitle())   #判断字符串中每个单词首字母是否全是大写
print('ABC'.lower())   #所有大写变小写
print('abc'.upper())   #所有小写变大写
print('Abc'.swapcase())  #大写变小写,小写变大写
print('abc'.ljust(10,'-'))  # abc-------
print('abc'.rjust(10,'-'))   #-------abc
print('  My name
'.lstrip())   #只把左边的空格和换行符去掉
print('  My name
'.rstrip())   #只把右边的空格和换行符去掉
print('My namengr'.rfind('n'))  #从右往左数第一个内容的真实索引值
print('My namengr'.lfind('n'))  #从左往右数第一个内容的真实索引值
print('My name is linpei'.split('i'))
print('My name is linpei'.rsplit('n',2))  #从右到左以第n个内容为分割,n=1
print('My name is linpei'.title())  #将所有单词的首字母大写
dic两种创建方式
dic = {'name':'linpei','age':24,'hight':170,'hobby':'girl'}
dic1 = dict((('name','linpei'),('age',24)))
print(dic)
print(dic['name'])   #通过键来取出
#字典里可以是任何类型
#'name':'linpei',,,,name叫做键,是一定只能为不可变类型,'linpei'为值
#不可变类型:整形,字符串,元组
#可变类型:列表,字典
#
dic['red'] = 'what'   #增加一个键值对
dic.seteefault('when',57)  #如果键相同,则添加不成功
ret = dic.seteefault('age',58)
print(ret)    #键相同,则返回字典中的值
#增加的键字典中不存在时,返回新加的值
#查     通过键来查找值
print(dic['name'])  #查找键对应的值
print(dic.keys())   #查字典中所有的键
print(dic.values()) #查字典中所有的值

print(dic.items())  #取字典中所有的键值对
#
dic['age'] = 55   #更改age
dic.update(dic1)   #将dic1增加到dic,dic1不变,如果dic1中存在dic中的键,将会覆盖
#
del dic['name']  #删除整个键值对
dic.clear()       #清空字典
dic.pop('age')   #删除键值对后输出删除的值
dic.popitem()    #随机删除一组键值对,并以元组方式返还值

#其他操作字典的方法
dic = dict.fromkeys(['host1','host2','host3'],['test1','test2'])
print(dic)  #dic = {'host1': ['test1', 'test2'], 'host3': ['test1', 'test2'], 'host2': ['test1', 'test2']}
dic['host2'][1] = 'test3'
print(dic)  #{'host2': ['test1', 'test3'], 'host1': ['test1', 'test3'], 'host3': ['test1', 'test3']}

#字典嵌套
av_catalog = ["欧美"]["www.youporn.com"][1] = "质量很好"
#字典排序
print(sorted(dic))  #对键排序,打印键
print(sorted(dic.values()))  #对值排序,打印值 数字和字符串不能比较
print(sorted(dic.items()))   #对键排序,打印键值对
#字典的遍历
dic = {'name':'linpei','age':24}
for i in dic:         #age 24    name linpei    效率高
    print(i,dic[i])
for i,v in dic.items():
    print(i,v)         #age 24   name linpei    效率低
原文地址:https://www.cnblogs.com/linpei/p/10980390.html