二、变量、整数、字符串、列表、字典、集合。

网友投稿 289 2022-09-01


二、变量、整数、字符串、列表、字典、集合。

一、输入与输出

print是输出的意思input是输入的意思

1.1:输出

1.2:输出

二、变量

例如:

2.2:变量定义规则

三、数数类型(int)

3.1:long(长整型)

注意:在Python3里不再有long类型了,全都是int

3.1:int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

四、字符串(str)

在Python中,加了引号的字符都被认为是字符串。存储少量的数据,进行简单的操作。

注意:双引号、单引号、没有任何区别,作用就是字符串必须用引号。

多引号只用于多行字符串。

4.1:字符串拼接

数字可以进行加减乘除等运算,字符串只能进行"相加"和"相乘"运算。

4.2:切片

切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。

格式: [start:end:step]

顾首不顾尾(结尾多取一个)s[起始索引:结束索引+1]s[起始索引:结束索引+1:步长][:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串;[start:] 从start 提取到结尾;[:end] 从开头提取到end - 1;[start:end] 从start 提取到end - 1;[start:end:step] 从start 提取到end - 1,每step 个字符提取一个;左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1;

#!/user/bin/env python# -*- coding:utf-8 -*-s = 'alexwusirritian'#取出alexs5 = s[0:4]#如果是从头开始可以不写0s5 = s[:4]print(s5)#取出wusirs6 = s[4:9]print(s6)#取出所有s7 = s[:]print(s7)#取出aews8 = s[:5:2]print(s8)#取出naits9 = s[-1:-5:-1]print(s9)#取出tians10 = s[-4:]print(s10)

输入一个字符串,返回倒序排序的结果,:如:‘abcdef’ 返回:'fedcba'

>>> G = "abcd">>> print(G)abcd>>> S = G[::-1]>>> print(S)dcba>>>

test = 'nothing is impossible'#取出nothingtest1 = test[:8]print(test1)#取出istest2 = test[8:11]print(test2)#取出impossibletest3 = test[-10:]print(test3)#取出所有test4 = test[:]print(test4)#反向取出所有test5 = test[-1:-22:-1]print(test5)test6 = test[::-1]print(test6)#输出结果为:nothing is impossiblenothing is impossibleelbissopmi si gnihtonelbissopmi si gnihton

4.3:字符串的常用方法

capitalize:首字母大写其余字母小写

s = 'alexWUsir's1 = s.capitalize()print(s1)#输出结果为:Alexwusir

test = 'nothing is impossible'test1 = test.capitalize()print(test1)#输出结果为:Nothing is impossible

swapcase:大小写翻转

s = 'alexWUsir's2 = s.swapcase()print(s2)

#输出结果为:ALEXwuSIR

test = 'Nothing Is imPOssiBle'test1 = test.swapcase()print(test1)#输出结果为:nOTHING iS IMpoSSIbLE

title:非字母隔开的每个单词的首字母大写

s = 'alex wusir*taibai2ritian's3 = s.title()print(s3)

#输出结果为:Alex Wusir*Taibai2Ritian

test = 'No#th-in)g I$s imPO*ss+iB%le'test1 = test.title()print(test1)#输出结果为:No#Th-In)G I$S Impo*Ss+Ib%Le

center:设置总长度,并居中

s = 'alexWUsir's4 = s.center(30,)print(s4)

#长度为30#输出结果为: alexWUsir

#长度为30,填充物为*s = 'alexWUsir's4 = s.center(30,'*')print(s4)#输出结果为:**********alexWUsir***********

#长度为50,填充物为+test = 'Nothing is impossible'test1 = test.center(50,'+')print(test1)#输出结果为:++++++++++++++Nothing is impossible+++++++++++++++

upper():全大写

s = 'alexWUsir's5 = s.upper()print(s5)#输出结果为:ALEXWUSIR

#验证码例子s = 'alexWUsir'code = 'AwEqr'username= input('请输入用户名:')your_code = input('请输入验证码:')if username == 'alex' and your_code.upper() == code.upper(): print('验证成功')#输出结果为:请输入用户名:alex请输入验证码:aweqr验证成功

test = 'Nothing is impossible'test1 = test.upper()print(test1)#输出结果为:NOTHING IS IMPOSSIBLE

lower():全小写

test = 'NOTHING IS IMPOSSIBLE'test1 = test.lower()print(test1)#输出结果为:nothing is impossible

startswith:检测字符串是否是由相同的开头,返回True或False

s = 'alexWUsir's6 = s.startswith('a')s7 = s.startswith('alex')s8 = s.startswith('W', 4,)print(s6,s7,s8)#输出结果为:True True True

test = 'Nothing is impossible'test1 = test.startswith('i')test2 = test.startswith('N')#第14个元素是不是以po开头test3 = test.startswith('po',13)print(test1)print(test2)print(test3)#输出结果为:FalseTrueTrue

endswith:检测字符串是否是由相同的结尾,返回True或False

test = 'Nothing is impossible'#整个字符串是否以e结尾test1 = test.endswith('e')#整个字符串是否以N结尾test2 = test.endswith('N')#第二个元素是否以t开头第四个元素是否以h结尾test3 = test.endswith('th',2,4)print(test1)print(test2)print(test3)#输出结果为:TrueFalseTrue

str = "this is string example....wow!!!"suffix = "wow!!!"print (str.endswith(suffix))print (str.endswith(suffix,20))suffix = "is"print (str.endswith(suffix, 2, 4))print (str.endswith(suffix, 2, 6))#输出结果为:TrueTrueTrueFalse

strip:默认去除字符串前后的空格,换行符,制表符

s = ' alexWUsir\t'print(s)#输出结果为: alexWUsir

s = ' alexWUsir\t'print(s)s7 = s.strip()print(s7)#输出结果为: alexWUsir alexWUsir

username = input('>>>').strip()password = input('>>>').strip()if username == '郭海亮' and password == '123': print('登录成功')#输出结果为:>>>郭海亮>>>123登录成功

ss = 'abc郭海亮q'ss1 = ss.strip('abqc')print(ss1)#输出结果为:郭海亮

str = "*****this is string example....wow!!!*****"print (str.strip('*'))#输出结果为:this is string example....wow!!!

lstrip():默认只去除左边的空格

str = " this is string example....wow!!! "print( str.lstrip() )str = "88888888this is string example....wow!!!8888888"print( str.lstrip('8') )#输出结果为:this is string example....wow!!! this is string example....wow!!!8888888

rstrip():默认只去除右边的空格

str = " this is string example....wow!!! "print (str.rstrip())str = "*****this is string example....wow!!!*****"print (str.rstrip('*'))#输出结果为: this is string example....wow!!!*****this is string example....wow!!!

replace:字符串替换

s = 'alex 分甘共苦老地方 alex 风刀霜剑卡乐芙's8 = s.replace('alex', 'SB')print(s8)#输出结果为:SB 分甘共苦老地方 SB 风刀霜剑卡乐芙#只替换第一个s = 'alex 分甘共苦老地方 alex 风刀霜剑卡乐芙's9 = s.replace('alex', 'SB',1)print(s9)#输出结果为:SB 分甘共苦老地方 alex 风刀霜剑卡乐芙

str = "this is string example....wow!!! this is really string"print (str.replace("is", "was"))print (str.replace("is", "was", 3))#输出结果为:thwas was string example....wow!!! thwas was really stringthwas was string example....wow!!! thwas is really string

split: 分隔,str ---> list

s1 = 'alex wusir taibai ritian's2 = 'alex,wusir,taibai,ritian's3 = 'alexwusirtaibairitian's4 = 'alexwusirtaibairitian'l1 = s1.split()l2 = s2.split(',')l3 = s3.split('a')l4 = s4.split('a',2) #以a为分隔符,分割两次print(l1)print(l2)print(l3)print(l4)#输出结果为:['alex', 'wusir', 'taibai', 'ritian']['alex', 'wusir', 'taibai', 'ritian']['', 'lexwusirt', 'ib', 'iriti', 'n']['', 'lexwusirt', 'ibairitian']

str = "this is string example....wow!!!"print (str.split( ))print (str.split('i',1))print (str.split('w'))#输出结果为:['this', 'is', 'string', 'example....wow!!!']['th', 's is string example....wow!!!']['this is string example....', 'o', '!!!']

join:分割,list---> str

注意:列表里面的元素必须都是字符串

s = '郭海亮's1 = '-'.join(s)print(s1)#输出结果为:郭-海-亮

l1 = ['alex', 'wusir', 'ritian']s10 = ' '.join(l1)print(s10,type(s10))#输出结果为:alex wusir ritian

str = "-" # 字符串序列seq = ("a", "b", "c")print (str.join(seq))#输出结果为:a-b-c

find:通过元素找索引,找不到返回-1

s = 'alexwausir's11 = s.find('e')s12 = s.find('ex')s13 = s.find('QWE')print(s11,type(s11))print(s12,type(s12))print(s13,type(s13))#输出结果为:2 2 -1

str1 = "Runoob example....wow!!!"str2 = "exam"print (str1.find(str2))print (str1.find(str2, 5))print (str1.find(str2, 10))#输出结果为:77-1

index:通过元素找索引,找不到会报错

#从列表中找出某个值第一个匹配项的索引位置)a = ["q","w","r","t","y"]print(a.index("r"))

str1 = "this is string example....wow!!!"str2 = "exam"print (str1.index(str2))#从索引10开始找print (str1.index(str2, 10))#从索引40开始找print (str1.index(str2, 40))#输出结果为:1515Traceback (most recent call last): File "F:/Python/My road of Python/day02/test.py", line 12, in print (str1.index(str2, 40))ValueError: substring not found

len:测量个数

s = 'alexwausir'print(len(s))#输出结果为:10

>>>str = "runoob">>> len(str) # 字符串长度6>>> l = [1,2,3,4,5]>>> len(l) # 列表元素个数5

count:(数)(方法统计某个元素在列表中出现的次数)

s = 'alexwausir'print(s.count('a'))#输出结果为:2

str = "this is string example....wow!!!"sub = "i"print ("str.count(sub, 4, 40) : ", str.count(sub, 4, 40))sub = "wow"print ("str.count(sub) : ", str.count(sub))#输出结果为:str.count(sub, 4, 40) : 2str.count(sub) : 1

format:格式化输出

s = "我叫{},今年{},爱好{}"#第一种用法s12 = s.format('海亮', '23', '女')print(s12)#第二种用法s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"s13 = s1.format('海亮', '23', '女')print(s13)#第三种用法s3 = "我叫{name},今年{age},爱好{hobby}"s14 = s3.format(age=23,hobby='girl',name='海亮')print(s14)#输出结果为:我叫海亮,今年23,爱好女我叫海亮,今年23,爱好女,我依然叫海亮我叫海亮,今年23,爱好girl

# 不设置指定位置,按默认顺序>>>"{} {}".format("hello", "world") 'hello world' # 设置指定位置>>> "{0} {1}".format("hello", "world") 'hello world' # 设置指定位置>>> "{1} {0} {1}".format("hello", "world") 'world hello world'

print("网站名:{name}, 地址 {url}".format(name="个人小站", url="guohailiang.club"))# 通过字典设置参数site = {"name": "个人小站", "url": "guohailiang.club"}print("网站名:{name}, 地址 {url}".format(**site))# 通过列表索引设置参数my_list = ['个人小站', 'guohailiang.club']print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的

isalnum:检验字符串是否由字母和数字组成

name = '123'print(name.isalnum())#输出结果为:True

str = "runoob2016"print (str.isalnum())str = "runoob.com"print (str.isalnum())#输出结果为:TrueFalse

isalpha:检测字符串是否只由字母组成

name = '123'print(name.isalpha())#输出结果为:False

test = 'Nothing is impossible'print(test.isalpha())#输出结果为:False

isdigit:检测字符串是否只由数字组成

name = '123'print(name.isdigit())#输出结果为:True

str = "123456"print (str.isdigit())str = "Runoob example....wow!!!"print (str.isdigit())#输出结果为:TrueFalse

sort()正序排序列表中的元素

l1 = [1, 9, 8, 4, 3, 2, 6,]l1.sort()print(l1)#输出结果为:[1, 2, 3, 4, 6, 8, 9]

list1 = ['Google','Runoob','Taobao','Baidu']list1.sort()print ("列表排序后 : ", list1)#输出结果为:列表排序后 : ['Baidu', 'Google', 'Runoob', 'Taobao']

sort()倒叙排序列表中的元素

l1 = [1, 9, 8, 4, 3, 2, 6,]l1.sort(reverse=True)print(l1)#输出结果为:[9, 8, 6, 4, 3, 2, 1]

reverse()翻转列表中的元素

l1 = [1, 9, 8, 4, 3, 2, 6,]l1.reverse()print(l1)#输出结果为:[6, 2, 3, 4, 8, 9, 1]

4.4:数字、字符串、布尔之间的转换

str ---> int

前提是:转换前的字符串全都由数字组成

int ---> str

所有数字都能转换为字符串str(int)

int ---> bool

0---> False非0 ---> Truebool(int)

print(bool(100))print(bool(-1))print(bool(0))#输出结果为:TrueTrueFalse

bool --> int

True ---> 1False --->0int(bool)

print(int(True))print(int(False))#输出结果为:10

str ---> bool

非空---> True空字符串---> Falsebool('str')

print(bool(''))print(bool('fdsaf'))#输出结果为:FalseTrue

bool --->str

没有意义

print(str(True),type(str(True)))#输出结果为:True

str ---> list

split

list --> str

join

五、布尔类型(bool)

两个值 ,一个True(真),一个False(假), 主要用记逻辑判断;

六 、列表(list)

包含在[ ]内,用逗号分隔。

里面可以存放各种数据类型比如:li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

用途:(存多个值,可以修改)

6.1:列表语法

表达式

结果

描述

L[2]

   'SPAM!'

读取列表中第三个元素

L[-2]

 'Spam'

 读取列表中倒数第二个元素

L[1:]

 ['Spam', 'SPAM!']

从第二个元素开始截取列表

len([1, 2, 3])

 3

长度

[1, 2, 3] + [4, 5, 6]

 [1, 2, 3, 4, 5, 6]    

 组合

['Hi!'] * 4  

 ['Hi!', 'Hi!', 'Hi!', 'Hi!']

重复

3 in [1, 2, 3]

 True  

元素是否存在于列表中

for x in [1, 2, 3]: print x   

  1 2 3   

迭代

6.2:列表操作包含以下函数

cmp(list1, list2)

比较两个列表的元素 

len(list)

列表元素个数

max(list)

返回列表元素最大值 

min(list)

返回列表元素最小值 

list(seq)

将元组转换为列表 

6.3:列表包含以下方法

list.append(obj)

在列表末尾添加新的对象

list.count(obj)

统计某个元素在列表中出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj)

将对象插入列表

list.pop(obj=list[-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向列表中元素

list.sort([func])

对原列表进行排序

6.4:查看

#按照索引,切片(步长),for 循环遍历。l = ['WuSir', 'alex', 'OldBoy', 'barry']for i in l: print(i)#输出结果为:WuSiralexOldBoybarry

6.5:增加

li = [1,'a','b',2,3,'a']

insert#按照索引去增加li.insert(0,55)print(li)#输出结果为:[55, 1, 'a', 'b', 2, 3, 'a']append#增加到最后li.append('aaa') print(li)#输出结果为:[1, 'a', 'b', 2, 3, 'a', 'aaa']#增加到最后li.append([1,2,3]) print(li)#输出结果为:[1, 'a', 'b', 2, 3, 'a', [1, 2, 3]]extend#迭代的去增li.extend(['q,a,w']) li.extend(['q,a,w','aaa'])li.extend('a')li.extend('abc')li.extend('a,b,c')print(li)#输出结果为:[1, 'a', 'b', 2, 3, 'a', 'q,a,w', 'q,a,w', 'aaa', 'a', 'a', 'b', 'c', 'a', ',', 'b', ',', 'c']

# append()l = ['WuSir', 'alex', 'OldBoy', 'barry']l.append('景女神')print(l)l.append(1)print(l)l.append([1, 2, 3])print(l)#输出结果为:['WuSir', 'alex', 'OldBoy', 'barry', '景女神']['WuSir', 'alex', 'OldBoy', 'barry', '景女神', 1]['WuSir', 'alex', 'OldBoy', 'barry', '景女神', 1, [1, 2, 3]]# insert()l = ['WuSir', 'alex', 'OldBoy', 'barry']l.insert(1, '葫芦')print(l)#输出结果为:['WuSir', '葫芦', 'alex', 'OldBoy', 'barry']# extend()l = ['WuSir', 'alex', 'OldBoy', 'barry']l.extend('abc')print(l)l.extend([1, '2122', 56])print(l)#输出结果为:['WuSir', 'alex', 'OldBoy', 'barry', 'a', 'b', 'c']['WuSir', 'alex', 'OldBoy', 'barry', 'a', 'b', 'c', 1, '2122', 56]

6.6:修改

li = [1,'a','b',2,3,'a']li[1] = 'dfasdfas'print(li)#输出结果为:[1, 'dfasdfas', 'b', 2, 3, 'a']li = [1,'a','b',2,3,'a']li[1:3] = ['a','b']print(li)#输出结果为:[1, 'a', 'b', 2, 3, 'a']

l = ['WuSir', 'alex', 'OldBoy', 'barry']#按照索引改l[0] = '日天'print(l)l[2] = '老男孩'print(l)#输出结果为['日天', 'alex', 'OldBoy', 'barry']['日天', 'alex', '老男孩', 'barry']# 按照切片去改l = ['WuSir', 'alex', 'OldBoy', 'barry']l[:3] = 'abcdgfdljgkfdgjlfdlgjfdsaklfdjskladsfj'l[:3] = 'a'l[:3] = [11, 22, 33, 44]#加步长 必须一一对应l[:3:2] = 'ab'print(l)#输出结果为:['a', 22, 'b', 44, 'f', 'd', 'l', 'j', 'g', 'k', 'f', 'd', 'g', 'j', 'l', 'f', 'd', 'l', 'g', 'j', 'f', 'd', 's', 'a', 'k', 'l', 'f', 'd', 'j', 's', 'k', 'l', 'a', 'd', 's', 'f', 'j', 'barry']

6.7:删除

li = [1,'a','b',2,3,'a']

#按照索引popl1 = li.pop(1)print(l1)#输出结果为:a#按照位置、切片deldel li[1:3]print(li)#输出结果为:[1, 2, 3, 'a']#按照元素removeli.remove('a') print(li)#输出结果为:[1, 'b', 2, 3, 'a']#清空列表clearli.clear()#输出结果为:

#将索引为奇数对应的元素删除l1 = [11, 22, 33, 44, 55]del l1[1::2]print(l1)#输出结果为:[11, 33, 55]

#再循环一个列表时,不要改变列表的大小,这样会影响结果。l1 = [11, 22, 33, 44, 55]for i in range(len(l1)): print(i) print(l1) if i % 2 == 1: del l1[i] print(i) print(l1)print(l1)#输出结果为:0[11, 22, 33, 44, 55]0[11, 22, 33, 44, 55]1[11, 22, 33, 44, 55]1[11, 33, 44, 55]2[11, 33, 44, 55]2[11, 33, 44, 55]3[11, 33, 44, 55]3[11, 33, 44]4[11, 33, 44]4[11, 33, 44][11, 33, 44]

l1 = [11, 22, 33, 44, 55]for i in range(len(l1)-1,-1,-1): if i % 2 == 1: del l1[i]print(l1)#输出结果为:[11, 33, 55]

dic = {'k1': 'v1', 'k2': 'v2', 'k3':'v3', 'name':'alex'}s1 = 'abc'print('a' in s1)l1 = []for i in dic: if 'k' in i: l1.append(i)print(l1)for i in l1: del dic[i]print(dic)#dic = dict.fromkeys('abc',666)print(dic)#输出结果为:True['k1', 'k2', 'k3']{'name': 'alex'}{'a': 666, 'b': 666, 'c': 666}

6.8:列表的嵌套

l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]# 将alex该成Alexl1[2] = l1[2].capitalize()print(l1)#输出结果为:[1, 2, 'Alex', ['WuSir', 'taibai', 99], 6]

l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]#将'WuSir'变成全部大写。l1[3][0] = l1[3][0].upper()print(l1)#输出结果为:[1, 2, 'alex', ['WUSIR', 'taibai', 99], 6]

l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]# 99让其通过数字加1的方式变成 '100'.l1[3][-1] = str(l1[3][-1] + 1)print(l1)#输出结果为:[1, 2, 'alex', ['WuSir', 'taibai', '100'], 6]

七、字典(dict)

key-values存储,可以存储大量的的关系型数据,查询速度非常快。字典的键 必须是唯一的,不可重复,value 可以为任意数据类型或者对象。字典的键只能是不可变的数据类型:数据类型的分类:不可变(可哈希的)得数据类型:int str tuple bool可变的(不可哈希的)数据类型:dict,list,set

定义:在{},用逗号隔开,每一个元素的形式都是键值对,即key:value。用途:可以有多个值,这一点与列表相同,但可以是任意数据类型特征:每一个值都有唯一一个对应关系,即key。key、字符串、数字是不可变类型。

7.1:字典包含了以下内置函数

cmp(dict1, dict2)

比较两个字典元素

len(dict)

计算字典元素个数,即键的总数

str(dict)

输出字典可打印的字符串表示

type(variable)

返回输入的变量类型,如果变量是字典就返回字典类型

7.2:字典包含了以下内置方法

radiansdict.clear()

删除字典内所有元素

radiansdict.copy()

返回一个字典的浅复制

radiansdict.fromkeys()

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

radiansdict.get(key, default=None)

返回指定键的值,如果值不在字典中返回default值

radiansdict.has_key(key)

如果键在字典dict里返回true,否则返回false

radiansdict.items()

以列表返回可遍历的(键, 值) 元组数组

radiansdict.keys()

以列表返回一个字典所有的键

radiansdict.setdefault(key, default=None)

和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default

radiansdict.update(dict2)

把字典dict2的键/值对更新到dict里

radiansdict.values()

以列表返回字典中的所有值

7.3:查看

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}print(dic['name'])print(dic.get('name'))#输出结果为:老男孩老男孩

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}# 类似于列表的一个容器,没有索引print(dic.keys())for i in dic.keys(): print(i)for i in dic: print(i)#输出结果为:dict_keys(['name', 'age', 'sex'])nameagesexnameagesex

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}print(dic.values())print(dic.items())for i in dic.items(): print(i)#输出结果为:dict_values(['老男孩', 10000, '男'])dict_items([('name', '老男孩'), ('age', 10000), ('sex', '男')])('name', '老男孩')('age', 10000)('sex', '男')

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}# 分别赋值a, b = 1 ,3a, b = [22, 33]print(a,b)for k, v in dic.items(): print(k, v)#输出结果为:22 33name 老男孩age 10000sex 男

7.4:增加

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}# 无责增加,有责修改。dic['hobby'] = 'old_girl'dic['name'] = 'alex'print(dic)#输出结果为:{'name': 'alex', 'age': 10000, 'sex': '男', 'hobby': 'old_girl'}# 有key则不修改,无责添加。dic.setdefault('high')dic.setdefault('high', 169)dic.setdefault('name', 'wusir')print(dic)#输出结果为:{'name': 'alex', 'age': 10000, 'sex': '男', 'hobby': 'old_girl', 'high': None}

7.5:修改

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}# 无责增加,有责修改.dic['name'] = 'alex'print(dic)#输出结果为:{'name': 'alex', 'age': 10000, 'sex': '男'}

dic = {"name": "jin", "age": 18,"sex": "male"}dic2 = {"name": "alex", "weight": 75}#将dic里面的键值对覆盖并更新到dic2中,dic不变 。dic2.update(dic)print(dic)print(dic2)#输出结果为:{'name': 'jin', 'age': 18, 'sex': 'male'}{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

7.6:删除

dic = { 'name': '老男孩', 'age': 10000, 'sex': '男',}# 返回值print(dic.pop('name')) dic.pop('name1',None)print(dic)#输出结果为:老男孩{'age': 10000, 'sex': '男'}#popitem 随机删除 有返回值print(dic.popitem())print(dic)#输出结果为:('sex', '男'){'name': '老男孩', 'age': 10000}#clear删除整个字典dic.clear()print(dic)#输出结果为:{}#按照键去删除键值对del dic['name']print(dic)#输出结果为:{'age': 10000, 'sex': '男'}

7.7:字典的嵌套

dic = {'name_list':['高猛', '于其',], 1:{ 'alex': '李杰', 'high': '175', }}###为['高猛', '于其',] 追加一个元素'wusir',2,### 为{'alex': '李杰','high': '175' } 增加一个键值对 'sex': man,dic['name_list'].append('wusir')print(dic)print(dic[1])dic[1]['sex'] = 'man'print(dic)#输出结果为:{'name_list': ['高猛', '于其', 'wusir'], 1: {'alex': '李杰', 'high': '175'}}{'alex': '李杰', 'high': '175'}{'name_list': ['高猛', '于其', 'wusir'], 1: {'alex': '李杰', 'high': '175', 'sex': 'man'}}

八、集合

8.1:作用

可以包含多个元素,用逗号分割,将不同的值存放在一起做关系运算。

1.每个元素必须是不可变类型(可hash,可作为字典的key)

2.没有重复的元素

3.无序

8.2:用法

|(并集)&(交集)-(差集)^(对称差集)

集合add方法:是把要传入的元素做为一个整个添加到集合中,例如:

>>> a = set('boy')>>> a.add('python')>>> aset(['y', 'python', 'b', 'o'])

集合update方法:是把要传入的元素拆分,做为个体传入到集合中,例如:

>>> a = set('boy')>>> a.update('python')>>> aset(['b', 'h', 'o', 'n', 'p', 't', 'y'])

集合删除操作方法:remove

set(['y', 'python', 'b', 'o'])>>> a.remove('python')>>> aset(['y', 'b', 'o'])

8.3:例子

bingo = {"人","生","苦","短","我","用","python"}awful = {"python","要","被","我","所","用"}

1.求bingo和awful的交集

>>> bingo = {"人","生","苦","短","我","用","python"}>>> awful = {"python","要","被","我","所","用"}>>> print(bingo & awful){'我', '用', 'python'}>>>

2.求bingo和awful的并集

>>> bingo = {"人","生","苦","短","我","用","python"}>>> awful = {"python","要","被","我","所","用"}>>> print(bingo | awful){'用', '所', '生', '人', '我', '要', 'python', '苦', '被', '短'}>>>

3.求只在bingo中出现的元素集合

>>> bingo = {"人","生","苦","短","我","用","python"}>>> awful = {"python","要","被","我","所","用"}>>> print(bingo - awful){'短', '人', '苦', '生'}>>>

4.求没有同时存在bingo和awful中的元素集合

>>> bingo = {"人","生","苦","短","我","用","python"}>>> awful = {"python","要","被","我","所","用"}>>> print(bingo ^ awful){'所', '要', '生', '人', '被', '苦', '短'}>>>

5.解压

test,*_={'包子','饺子','丸子',}print(test)

九、数据类型嵌套

作者:HaydenGuo

每一个前十年都想不到后十年我会演变成何等模样,可知人生无常,没有什么规律,没有什么必然。

只要我还对新鲜的知识、品格的改进、情感的扩张、有胃口,这日子就是值得度过的。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:利用Java编写一个出敬业福的小程序
下一篇:python - - -之禅(python入门教程(非常详细))
相关文章

 发表评论

暂时没有评论,来抢沙发吧~