列表:

列表: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. CRMEB 商城系统常见错误修复办法

    清空了用户表,没有清空拼团记录表导致,解决办法 --v2.5.2 清空拼团表-- TRUNCATE table eb_store_pink 修改了组合数据规则导致的,更新数据即可 --v2.5.2 e ...

  2. package.json 里的 dependencies和devDependencies区别

    dependencies(依赖的意思): 通过 --save 安装,是需要发布到生产环境的.比如项目中使用react,那么没有这个包的依赖就会报错,因此把依赖写入dependencies devDep ...

  3. idea integrate project

    idea的integrate project功能,版本控制工具:svn 之前我对这个功能的误解太深了,这里特别记录一下这个功能的使用,首先上图 先看这里的source1和source2,里面填的是sv ...

  4. 论文学习笔记--无缺陷样本产品表面缺陷检测 A Surface Defect Detection Method Based on Positive Samples

    文章下载地址:A Surface Defect Detection Method Based on Positive Samples 第一部分  论文中文翻译 摘要:基于机器视觉的表面缺陷检测和分类可 ...

  5. NB群友

    链接:https://ac.nowcoder.com/acm/contest/625/A来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言26214 ...

  6. Salesforce知识整理(一)之Lightning Web Component Tools

    目录 LWC知识整理(一) 工具 Salesforce CLI Visual Studio Code(VS Code) Developer Hub(Dev Hub) 开启Dev Hub 相关资料 茶余 ...

  7. java爬虫实现爬取百度风云榜Top10

    最近在项目中遇到了java和python爬虫进行程序调用和接口对接的问题, 刚开始也是调试了好久才得出点门道. 而后,自己也发现了爬虫的好玩之处,边想着用java来写个爬虫玩玩,虽说是个不起眼的dem ...

  8. PADS Layout VX.2.3 更改Logic符号,并更新到原理图

    操作系统:Windows 10 x64 工具1:PADS Layout VX.2.3 统一使用A3尺寸的原理图,如果Logic符号画得太大,就会占用过多的面积.如下图所示,电阻的两只引脚的跨度占用了4 ...

  9. IntelliJ IDEA 如何设置类头注释和方法注释

    从VS转过来的,ide的差距很大的,所以...特意折腾了很久,结果还是没有VS的 '///' 好用 一.类头注释 打开file -> setting -> Editor -> Fil ...

  10. How does rt.jar works?

    转载自:https://stackoverflow.com/questions/30222702/how-does-java-link-lib-rt-jar-to-your-app-at-runtim ...