Python5--字符串、列表、字典

类型转换
 int(“100”)—>100

字符串组成
a = “qwe”
b = “asd”
c = a+b —>c = “qweasd”
c = “%”%(a+b) —>c = “qweasd”

下标
name = “qweasd”
name[0] —> “q”  #0就是下标
name[6] —> 会提示越界
len(name) —> 6 #name长度
name[len(name)-1]  和 name[-1] 效果一样取最后一位

切片
name[1:10:3] # 1为起始位置10为终止位置3位步长
name[1:3] —>”we" # 取下标1、2两位, 3不取
name[3:-1] —>”as” #取下标3到倒数第二个,最后一位不取
name[3:] —>”asd” #取下标3到最后
name[1:6:2] —>”wad” #从下标1取到最后,切步长为2
name[::-1] —>”dsaewq” #逆序,与name[-1::-1] 一样

常见操作
name 和 a 的值并不会做改变

find  查找
name.find(“a”) —>3 #”a”的下标
name.find(“z”) —>-1 #”z”不在其中会返回-1
name.rfind # 从右边开始查找第一个出现的位置(下表仍然从左开始计数)
name.index #与name.find一致   (不在其中会报异常)
name.rindex #与name.rfind一致     (不在其中会报异常)

count  次数
name.count(“q”) —>1 #”q”出现的次数(不存在即为0)

replace  替换
name.replace(“qwe”,”123”) —> “123asd” # 将name中从左至右所有’qwe’替换为’123’
a=“name age apple"
a.replace(“a”,”1”, 2) —>”n1me 1ge apple” —>  将name中从左至右  2个  ’a’替换为’1’

split  切割
a.split(“ “) —>['name',age',’apple’]   #以“”为分割成有字符串组成的列表
capitalize  首字母大写
a.capitalize() —>”Name age apple”
title  所有单词首字母大写
a.title() —> “Name Age Apple”

starwith 判断以。。。开头   (区分大小写)  a.starwith(“n")
endwith 判断以。。。结尾   (区分大小写)  a.endwith(“e")

lower 所有字母小写
upper 所有字母大写

ljust        左边填充空格  name.ljust(10)
rjust       右边填充空格  name.rjust(10)
center    两边填充空格  name.center(10)
lstrip      左边空格去掉
rstrip     右边空格去掉
strip      两边空格全去掉
partiton    
b = “qweqweqwe"
b.partiton(“w”) —> (‘q’,’w’,’eqweqwe’)  #从左开始以“w”为分割为三部分组成元组
rpartiton 
b.rpartiton(“a”) —>(‘qweqweq’,’w’,’e’) #从右开始以“w”为分割为三部分组成元组
splitlines 以\n(换行符)分割
isdigit      判断字符串是不是数字组成
isalpha    判断字符串是不是字母组成
isalnum   判断字符串是不是数字或者字母组成 
Isspace   判断字符串是不是空格组成
join    在每个字符后插入



列表 — 增删改查  
添加新的元素
append()
insert()
extend()
In [ 1 ]: names = [ '赵' , '钱' , '孙' , '李' ]

In [ 2 ]: names[ 3 ]
Out[ 2 ]: '李'

In [ 3 ]: names.append( '孙悟空’ )  #追加

In [ 4 ]: names
Out[ 4 ]: ['赵', '钱', '孙', '李', '孙悟空']

In [ 5 ]: names.insert( 1 , '猪八戒' ) #位置,添加的内容

In [ 6 ]: names
Out[ 6 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空']

In [ 7 ]: n1 = names

In [ 8 ]: n2 = names

In [ 9 ]: names = n1 +n2

In [ 10 ]: names
Out[ 10 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空', '赵', '猪八戒', '钱', '孙', '李', '孙悟空']

In [ 24 ]: names = [ '赵' , '猪八戒' , '钱' , '孙' , '李' , '孙悟空' ]

In [ 25 ]: names
Out[ 25 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空']

In [ 26 ]: n1 = names

In [ 27 ]: n1.extend(names) #列表合在一起

In [ 28 ]: n1
Out[ 28 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空', '赵', '猪八戒', '钱', '孙', '李', '孙悟空’]

删除元素
pop()
remove()
del xxx[下标]
In [ 44 ]: names
Out[ 44 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空', '赵', '猪八戒', '钱', '孙', '李', '孙悟空']

In [ 45 ]: names.pop()   #从后往前删除
Out[ 45 ]: '孙悟空'

In [ 46 ]: names
Out[ 46 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空', '赵', '猪八戒', '钱', '孙', '李']

In [ 47 ]: names.pop()
Out[ 47 ]: '李'

In [ 48 ]: names
Out[ 48 ]: ['赵', '猪八戒', '钱', '孙', '李', '孙悟空', '赵', '猪八戒', '钱', '孙’]

In [ 51 ]: names.remove( '猪八戒’ )   #从前往后删除第一个“猪八戒”

In [ 52 ]: names
Out[ 52 ]: ['赵', '钱', '孙', '李', '孙悟空', '赵', '猪八戒', '钱', '孙’]

In [ 53 ]: del names[ 4 ]   #根据下标删除

In [ 54 ]: names
Out[ 54 ]: ['赵', '钱', '孙', '李', '赵', '猪八戒', '钱', '孙’]

修改元素
xxx[下标]
In [ 55 ]: names[ 0 ] = '二郎神'

In [ 56 ]: names
Out[ 56 ]: ['二郎神', '钱', '孙', '李', '赵', '猪八戒', '钱', '孙’]

查找元素
in 
not in
In [ 57 ]: '猪八戒' in names
Out[ 57 ]: True

In [ 58 ]: '猪八戒' not in names
Out[ 58 ]: False

In [ 12 ]: n
Out[ 12 ]: ['q', 'w', 'e']
#查找下标
In [ 13 ]: n.index( 'w' )
Out[ 13 ]: 1


综合应用
  1 #打印功能提示
  2 print ( '=' * 40 )
  3 print ( "    名字关系系统" )
  4 print ( " 1.增加" )
  5 print ( " 2.删除" )
  6 print ( " 3.修改" )
  7 print ( " 4.查询" )
  8
  9 names = [] #定义一个空列表
 10
 11 while True :
 12
 13     num = int ( input ( '请输入序号: \n ' ))
 14
 15     if num == 1 :
 16         new_name = input ( "请输入名字: \n " )
 17         names.append(new_name)
 18         print (names)
 19     elif num == 2 :
 20         del_name = input ( '请输入要删除的名字: \n )
 21         names.remove(del_name)
 22         print (names)
 23     elif num == 3 :
 24         chg_num = int ( input ( '请输入要修改第几个名字: \n ' ))
 25         chg_name = input ( '请输入新的名字: \n ' )
 26         names[chg_num - 1 ] = chg_name
 27         print (names)
 28     elif num == 4 :
 29          find_name = input ( '情书如要查询的名字: \n ' )
 30          if find_name in names:
 31              print ( '已找到' )
 32          else :
 33              print ( "未找到" )
 34     else :
 35         prrint( '输入错误’ )




字典
data = {'name':'Jack',’job':'警察','home’:'地球'} # 键值对存储
data[’name’]—>’Jack’ #根据键来找值

字典的增删改查
In [ 1 ]: infor = { 'name' : 'jack' }

In [ 2 ]: infor[ 'age' ] = 18 #增加

In [ 3 ]: infor
Out[ 3 ]: {'age': 18, 'name': 'jack'}

In [ 4 ]: del infor[ 'age’ ] ##删除

In [ 5 ]: infor
Out[ 5 ]: {'name': 'jack'}

In [ 6 ]: infor[ 'name’ ]  #查询
Out[ 6 ]: 'jack'

In [ 7 ]: infor[ 'name' ] = ‘ben’    #修改

In [ 8 ]: infor
Out[ 8 ]: {'name': 'ben'}

In [ 9 ]: infor.get( 'name’ )    #查询
Out[ 9 ]: ‘ben'


字典常见操作及遍历

In [ 1 ]: infor = { 'name' : 'jack' , 'age' : 18 }

In [ 2 ]: len (infor)
Out[ 2 ]: 2

In [ 3 ]: infor.keys()
Out[ 3 ]: dict_keys(['name', 'age'])

In [ 4 ]: infor.values()
Out[ 4 ]: dict_values(['jack', 18])

In [ 5 ]: for temp in infor.keys():
   ...:     print (temp)
   ...:    
name
age

In [ 6 ]: infor.items()
Out[ 6 ]: dict_items([('name', 'jack'), ('age', 18)])

In [ 7 ]: for temp in infor.items():
   ...:     print (temp)
   ...:    
('name', 'jack')
('age', 18)

In [ 8 ]: for temp in infor.items():
   ...:     print ( 'key = %s ,value = %s ' %(temp[ 0 ],temp[ 1 ]))
   ...:    
key = name,value = jack
key = age,value = 18

元组
A = (11,22)
B = A 
C,D  = A   # 拆包
C  —> 11
D  —> 22

In [ 9 ]: for a,b in infor.items():
   ...:     print ( 'key = %s ,value = %s ' %(a,b))
   ...:    
key = name,value = jack
key = age,value = 18

列表存储  —同类型数据   []  增删改查
字典存储  —非同类数据   {}  增删改查
元组存储  —同类型数据   ()  增删查   不可修改

简易名片夹系统
  1 #打印功能提示
  2 print ( '=' * 40 )
  3 print ( "    名片管理系统" )
  4 print ( " 1.增加" )
  5 print ( " 2.删除" )
  6 print ( " 3.修改" )
  7 print ( " 4.查询" )
  8 print ( ' 5.退出系统' )
  9 print ( '=' * 40 )
 10
 11 card_infors = [] #定义一个空列表就是名片夹
 12
 13 while True :
 14
 15     num = int ( input ( '请输入序号: \n ' ))
 16
 17     if num == 1 :
 18         new_name = input ( "请输入名字: \n " )
 19         new_phone = input ( '请输入手机号: \n ' )
 20         new_add = input ( '情书入住址: \n )
 21         new_infor = {}
 22         new_infor[ 'name' ] = new_name
 23         new_infor[ 'phone' ] = new_phone
 24         new_infor[ 'add' ] = new_add
 25         #将字典加入名片夹列表  
 26         card_infors.append(new_infor)
 27         print (card_infors)
 28     elif num == 2 :
 29         del_name = input ( '请输入要删除的名字: \n ' )
 30         i = 0
 31         names = [] #定义一个空列表存储所有名片名字用于查找
 32         while i < len (card_infors): #有多少个名片
 33             names.append(card_infors[i][ 'name' ]) #将所有名字加入列表
 34             i+= 1
 35
 36         if del_name in names:
 37             del card_infors[names.index(del_name)] #删除名片(del),index() >     查找del_name的下标
 38         else :
 39             print ( "未找到" )
 40         print (card_infors)
 41     elif num == 3 :
 42         chg_num = int ( input ( '请输入要修改第几个名片: \n ' )) - 1 #名片夹的下标
 43         chg_name = input ( '请输入新的名字: \n ' )
 44         chg_phone = input ( '请输入新的手机号: \n ' )
 45         chg_add = input ( '请输入新的地址: \n ' )
 46         card_infors[chg_num][ 'name' ] = chg_name
 47         card_infors[chg_num][ 'phone' ] = chg_phone
 48         card_infors[chg_num][ 'add' ] = chg_add
 49         print (card_infors)
 50     elif num == 4 :
 51         find_name = input ( '情书如要查询的名字: \n ' )
 52         i = 0
 53         names = [] #定义一个空列表存储所有名片名字用于查找
 54         while i < len (card_infors):
 55             names.append(card_infors[i][ 'name' ]) #将所有名字加入列表
 56             i+= 1
 57         if find_name in names:
 58              print ( '查询具体信息:%s' %card_infors[names.index(find_name)]) #打印需要查找的人的所有信息
 59         else :
 60              print ( "未找到" )
 61         print (card_infors)
 62     elif num == 5 :
 63         break
 64     else :
 65         prrint( '输入错误’ )




猜你喜欢

转载自blog.csdn.net/csdn15150525313/article/details/78430372