列表:

列表:list, 也叫数组,表现[].
特点:有角标,元素可以重复,有序的元素 例子:
stus = ['王志华','乔美玲','乔美玲','王文文','feixiang']#中括号,这就是一个list;
只有加了引号就是字符串儿(如stus = ‘['王志华','乔美玲','乔美玲','王文文','feixiang']’)
下标:中括号中每个名字的序数,也称角标,索引
元素:列表中各个内容,如王志华
!特别注意,下标是从0开始的。 stus2 = []
stus3 = list()
#都是定义空的list 增加元素(俩种方法,末尾和指定位置)
stus.append('赵燕')#在list末尾增加一个元素
stus.insert(0,'杨静')#在指定下标位置增加元素。
stus.insert(20,'蔡进')如果指定位置不存在,会加在末尾 print('stus的长度是',len(stus))#取元素个数 改
stus[3] = '蔡康永'#找到下标,直接赋值更改
print('改完之后的',stus)
print(stus[-1])#负表示从后边开始数,用于查找后边数据 删除
stus.pop()#pop默认删除最后一个元素
stus.pop(2)#删除角标为2,即第三为元素
stus.remove('乔美玲')#删除输入的元素
stus.pop(8)#下标8的元素不存在,会报错
stus.remove('乔美')#乔美元素不在列表,会报错
del stus[-1]#也是删除指定的元素
stus.clear()#清空 查
result= stus.count('乔美玲')#查询输入元素在list里面出现的次数
result= stus.count('乔美')#不存在的元素,会出现0
no = stus.index('乔美玲')#找元素的下标
no2 = stus.index('乔美玲')#list中有俩个或几个,只会返回最前边一个的下标
no3 = stus.index('乔美')#找不在表中元素的下标,会报错
stus.reverse()#反转(转置)
stus.sort()#排序,按字母数字排的,文字没法排
nums = [3,6,2,6,3,9,1]
# nums.sort()
# nums.reverse()
# nums.sort(reverse=True)#排序后又反转,会改变排序方式
nums.extend(stus)#把一个list的元素加入到另一个list
# print(nums) 布尔类型
True False print(1>2)
if '乔美玲' in stus:#也可以用 if stus.count('乔美玲') is not 0:
print('同学存在')
else:
print('同学不存在') stus = ['杨静', '王志华', '王银梅', '乔美玲','段鑫琪', '王立文', '赵燕','杨华', '周永波', '杨静']
for s in stus:#列表直接循环,是取的元素。
print('s的值是%s'%s)
如果直接循环一个list,那么每次取值的就是list里边的每个元素。
for i in range(len(stus)):
print(i) index = 0
while index < len(stus):
print(index)
index += 1
p = xpinyin.Pinyin()
for s in stus:
stu_pinyin = p.get_pinyin(s,'')
print(stu_pinyin) for i in range(len(stus)):
print('下标是%s,值是%s'%(i,stus[i])) for index,stu in enumerate(stus):#同时取到下标和值
print('%s ==> %s'%(index,stu)) for index,stu in enumerate(stus,1):#同时取到下标和值,加1取下标从1开始
print('%s ==> %s'%(index,stu)) choice = ['注册','登录','退出','购物']
print('输入编号进入对应的操作')
for index,c in enumerate(choice,1):
print('%s ==> %s'%(index,c)) 多维数组
stu2 = [1,2,3,4,['a','b','c',['哈','哈哈']]] #三维数组
print(stu2[4][1])#一层层找,先找到第一层的第4个元素,再第二层的第1个元素,这个结果为b
print(stu2[4][3][1])#一层层找,先找到第一层的第4个元素,再第二层的第3个元素,然后第三层的第一个元素,这个结果为哈哈
stu2[4][3].insert(1,'蔡进')#一层层找,先找到第一层的第4个元素,再第二层的第1个元素
#print(stu2) 切片:list取值的一种方式,它指定范围取值
stu4 = [1,2,3,4,5,6,7,8]
#print(stu4[2:5])#切片取值,顾头不顾尾。即没有取到6.
#print(stu4[:5])#从最前面开始取
#print(stu4[2:8])#取到8,比最后一位的角标大一位
#print(stu4[2:])#取到最后面
#new_stu = stu4[:]#复制了一个新的list
#print(stu4[:])
#print(stu4[0:8:2])#隔一个取一个,2是步长,写的2,实际上跳过了1个。为1时不用跳
#print(stu4[0:8:-1])#变成了空
#print(stu4[::-1])#步长为负数的时候,为从右往左取值
#print(stu4[-1:-9:-2])#前边加数组,且不为负数时,变成了空。
#new_stu = stu4#下节课讲 #下标、切片、长度、循环 同样适用于字符串,但不能修改。
#name = '马上要吃饭了'
#print(name[3],len(name))
#for i in range(len(name)):
# print(i) 字典: 列表很难存储大量信息,用起来也不方便,而且效率很低,就引入了字典。# stus=['王志华','乔美玲','段鑫琪','王立文']# stu_info = [ # ['王志华','18''女''address']
#     ['乔美玲','18''女''address']
# ['段鑫琪','18''女''address']
# ['王立文','18''女''address']
# ]
# for stu in stu_info:
# if stu[1] == "乔美玲": 字典:
#stu_info = {'name':'王志华','age':'18','addr':'北京'}#大括号,字典;是key-value形式
!字典里边的key是唯一的,否则后边的会覆盖前边的;
!元素是乱序的。 取值
# print(stu_info)#取字典
# print(stu_info['name'])#取key为name是的值
# print(stu_info['age'])#取key为age时的值
!jason同字典外观一样,但jason就是字符串儿,只是个格式长得非常像。 查
# print(stu_info)
# print(stu_info['name'])#查name的value,不存在时会报错
# print(stu_info.get('name',500))#.get后边可以指定不存在时报的结果,会出现500
加.get,当key存在时,跟没get是一样的。
但不存在时,会报None,即空空的,也不报错。但没get的会报错。
# print(stu_info['age']) 修改
# stu_info['addr']='上海'#直接复制修改
# print(stu_info) 新增
#stu_info['phone']='1233434'#key不存在时,会新增 #不安全,存在时会改变phone的值。
# stu_info.setdefault('email','ddd@163.com')#key不存在时会新增,存在时不改变
!stu_info.setdefault('age','19')#key存在时,值不会新定义
# print(stu_info) 删除
#stu_info.pop('phone')
#stu_info.clear()#清空这个字典
#stu_info.popitem()#从字典里面随机删除一个元素
#print(stu_info)
#字典没有顺序 # d1={}
# d2={'a':'v'}
# d1.update(d2)#把d1更新为d2
# print(d1) # print(stu_info.keys())#取所有的key
# print(stu_info.values())#取所有的value
# print(stu_info.items())#取所有的元素 直接循环字典,看看每次循环的是字典的key
# for k in stu_info:#循环字典,叫啥无所谓,循环的是key
# print(k) 判断
#print('name' in stu_info)#判断这个key存不存在
#print('name' in stu_info.keys())#判断这个key存不存在,需要将所有的key拿出来列表再判断,没上边的快。 #for i in stu_info:#循环字典,叫啥无所谓,循环的是key,比下边的方法快
# s='%s=>%s'%(i,stu_info.get(i))
# print(s) # for j,v in stu_info.items():#俩个值,取key和value。因为需要列表,所有很慢
# b='%s=>%s'%(j,v)
# print(b) 多维字典:
# stu_info={
# '小明':{'passwd':'123456','phone':'132323','age':'18'},
# '小黑':{'passwd':'223456','phone':'232323','age':'28'}
# }
# print(stu_info['小明']['phone'])#层层定位再取值 d = {
'春波':{
"car":{'BMW':5,'BENZ':3,'audi':3,'byd':4},
"house":["北京",'南京','上海'],
"money":1000000,},
'乔美玲':{
"bag":['xx','lv',],
"house":['三环','4环'],
"hzp":['skii','ysl'],
'language':{
'普通话':10,
'东北话':20,
'日语':0,
'英语':4
}
}
}
#马春波卖了一套上海的房子,卖了500万
# d['春波']['house'].pop(2)
# d['春波']['money']+=5000000
#算一下马春波有多少辆车
#m=d['春波']['car'].values()
#马春波花了100万买了一辆劳斯莱斯 #乔美玲的东北话降级了,从20变成了10 #乔美玲会哪些语言 #print(d)
字符串
t='user1,user2,user3,user4,user5,user6,user7'
print('分隔符',t.split(','))#取列表,按照某个字符来分割字符串儿
print('',t.split())#什么都不传,按空格分开。没有空格就认为是一个元素 cars = ['ad','cd','ef']
print('、'.join(cars))#以某个字符把list中的元素连起来,变成一个字符串儿。跟split全反 s='a... adbDEF'
print(s.strip()) #默认去掉字符串俩边的空格和换行符
new_s = s.strip('.')#加了点,就字符串最俩边的点儿也可以去掉
print(new_s)
print(s.rstrip())#去右边的
print(s.lstrip())#去左边的
print(s.count('.'))#某个字符串出现的次数
print(s.index('a'))#找某个字符串下标,不存在会报错
print(s.find('c'))#找某个字符串下标,不存在会返回-1
print(s.replace('adb','ABC',1))#替换,数字代表几个
print(s.upper())#变成大写
print(s.lower())#变成小写
print(s.capitalize())#首字母大写
print(s.startswith('p'))#判断是不是以p开头的
print(s.endswith('p'))#判断是不是以p结尾的
print(s.islower())#判断是否小写
print(s.isupper())#判断是否大写
print(s.istitle())#判断是不是标题(首字母是不是大写)
print(s.isdigit())#判断是不是整数
print(s.center(50,'*'))#放在50个字符中间,字符不够,用*来凑
s2='abc123'
print(s2.isalpha())#判断是不是全字母或汉字,不能有数字
print(s.isspace())#判断是否全部都是空格
print(s.isalnum())#没有特殊字符,返回True
print(s.isidentifier())#判断是不是一个合法变量名
#用.format来格式化字符串。用{}来占位,不用一一对应
#目标:输出字符串 insert into user VALUE (username,password,addr,email,phone)
#第一种格式化字符串
s='insert into user VALUE ({username},{password},' \
'{addr},{email},{phone}); '
new_s = s.format(addr='北京',phone=1223,email='niu@qq.com',username='niuhanyang',password='12345')
print(new_s) #第二种格式化字符串
s='insert into user VALUE ({username},{password},' \
'{addr},{email},{phone}); '
d = {'addr': '北京', 'username': 'xiaohei', 'password': '12345', 'email': 12,
"phone": 'sdfs'}
s_map=s.format_map(d)
print(s_map)

l = [1,2,3,4,5,6,7,8,9,10]
for i in l:
res='0'+str(i)
print(res) t='user1,user2,user3, user4,user5,user6,user7'
print('传分隔符',t.split(','))#按照某个字符来分割字符串儿
print('什么都不传',t.split())#什么都不传,按空格分开。没有空格就认为是一个元素 cars = ['ad','cd','ef']
print('、'.join(cars))#以某个字符把list中的元素连起来,变成一个字符串儿。跟split全反
print(str(cars))#看着没有区别,但已经变成了字符串 replace strip join split isdigit upper lower format startswith endswith count
这几个必须记住,很常用
												

Python列表,字典和字符串操作的更多相关文章

  1. python 列表,字典,元组,字符串,QuerySet之间的相互转换

    1. 列表转换成字典list1 = ['key1','key2','key3']list2 = ['value1','value2'] dict1 = zip(list1,list2) # dict( ...

  2. (转)python 列表与元组的操作简介

    python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...

  3. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  4. python(二)——list、字典、字符串操作

    列表——list 假设一种场景,想要存班里所有同学的名字,那应该拿什么存呢? 我们可以拿一个字符串去存,例如: stus = "s1,s2,s3,s4,s5……sn" 那我们要从里 ...

  5. python3.0 day02 列表、元组 、字典、字符串操作

    1.列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作,类似于其他语言中的数组. 定义列表 names = ['Lioa',"Tenglan ...

  6. 小白的Python之路 day2 字符串操作 , 字典操作

    1. 字符串操作 特性:不可修改 name.capitalize() 首字母大写 name.casefold() 大写全部变小写 name.center(50,"-") 输出 '- ...

  7. python中用json存储列表字典等文件操作

    JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load 由于需要在脚本重启后依旧能够记住之前所使用的列表内容, 故采用json存储列表文 ...

  8. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

  9. python数据类型:字典dict常用操作

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...

  10. 『无为则无心』Python序列 — 18、Python列表概念及常用操作API

    目录 1.列表的概念 (1)列表的定义 (2)列表的应用场景 (3)列表的定义格式 2.列表的常用操作 (1)列表的查找 1)通过下标查找 2)通过方法查找 3)判断是否存在 (2)列表的增加 @1. ...

随机推荐

  1. request.getParameterValues 出现 [Ljava.lang.String;@ 错误

    在实现简单的本地登录系统时,需要把page1.jsp的表单显示在page2.jsp中. 其中获取page1.jsp表单的办法就是在页面1的<form>中加入action="pag ...

  2. 关于selenium的8种元素定位

    selenium中有八种元素定位,分别是:id,name,class_name,tag_name,link_text.partial_link_text.xpath.css 简单的定位可以用 id.n ...

  3. axios formData提交数据 && axios设置charset无效???

    但是这样会出现一个问题,什么问题呢? 我设置了请求头编码utf-8,但是没生效 content-type里面没有出现utf-8???????查了很多资料,说这是axios固有的bug,我....... ...

  4. 微信商户/H5支付申请 被拒原因:网站存在不实内容或不安全信息

    看到这张图片,申请H5支付的朋友估计是崩溃的,被拒的原因是网站存在不实内容或不安全信息. 解决方法有两种: 针对不安全内容,则是微信支付审核团队认为你的网站存在安全漏洞的,需要修复. 针对不实内容,则 ...

  5. LeetCode第二十三题-合并n个有序链表

    Merge k Sorted Lists 问题简介:合并k个已排序的链表并将其作为一个排序链表返回. 举例: 输入: [ 1->4->5, 1->3->4, 2->6 ] ...

  6. Python简单基础小程序

    1 九九乘法表 for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j in range(i):#从0循环到i j += 1 print(j,'*',i, ...

  7. anylogic 常用模块及术语的使用

    1.1 存量 创建存量变量 1. 在调色板视图下的Model页面中选择Stock 元素. 2. 在图形化编辑器中您所期望的位置点击鼠标,放置该存量. 3. 在属性视图下的Equation部分中,定义该 ...

  8. 【easy】108. Convert Sorted Array to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ...

  9. Sprite子节点透明度不能跟随父节点变化的问题求解(转)

    原出处忘记了. [已解决]Sprite子节点透明度不能跟随父节点变化的问题求解 自己封装了一个按钮控件,点击的时候封装了一些动作,其中有透明度的变化. 当点击发生的时候,Sprite本体执行正常,但是 ...

  10. C# Emgu 类型转换

    Bitmap: Bitmap位图文件,是Windows标准格式,也是.Net主要的图像存储格式. Bitmap类以System.Drawing为命名空间,继承抽象类Image,同时里面封装了非常多对图 ...