Python基础-列表、元组、字典、字符串
多维数组
nums1 = [1,2,3] #一维数组
nums2 = [1,2,3,[4,56]] #二维数组
nums3 = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组
nums4 = [1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] #四维数组
print(nums2[3][1]) #56
print(nums2[-1][-1]) #56
print(nums3[4][5][1]) #'二'
print(nums3[5][1]) #'五'
print(nums3[-1][-1]) #'五'
list
list中可以放不同类型的值,list的下标从0开始。
#定义一个list
stu_name = ['张三', '李四', '王五', 1, 1.5]
print(stu_name) #打印list中全部内容
print(stu_name[0]) #打印'张三'
len()
length = len(stu_name) #list的长度,list中元素的个数
list增加元素
append()
insert()
stu_name.append('朱六') #在list末尾添加一个元素
stu_name.insert(0, '小军') #在指定位置插入一个元素
print(stu_name)
list修改元素
stu_name[6] = '铲铲'
print(stu_name)
list删除元素
pop()
remove()
del
reverse()
stu_name.pop() #删除最后一个元素
stu_name.pop(4) #删除指定下标的元素
stu_name.remove('小军') #删除指定的元素,有多个相同的元素,会删除第一个
del stu_name[-1] #删除指定位置的元素,正数从正序开始,负数从倒序开始
print(stu_name)
list查找元素
count()
index()
reverse()
clear()
my_list = ['小黑', '小白', 1, 1, 2, 1.5]
print(my_list[-1])
print(my_list[0])
print(my_list.count(1)) #查询某个元素在list里面出现的次数
print(my_list.index(1)) #查找元素的下标,多个相同元素取第一个,不存在的无素会报错
print(my_list.reverse()) #直接打印结果为None
print(my_list) #输出时list被反转
my_list.clear() #list被清空
print(my_list)
sort()
sort(reverse=True)
nums = [9.23, 9, 3, 6, 1, 0]
nums.sort() #从小到大排序
nums.sort(reverse=True) #从大到小排序
nums.extend(my_list) #把一个list里面的元素加入
print(nums)
new_list = nums + my_list + stu_name #合并
print(new_list)
print(new_list * 3) #复制几次
list练习
users = ['wrp','nhy','haha']
#校验用户名是否存在
for i in range(5):
username = input("请输入用户名:")
# 如果用户不存在的话,说明可以注册
#if users.count(username) > 0:
if username not in users: #in就是判断在不在里面
print("用户未注册,可以注册")
users.append(username)
else:
print("用户已经被注册")
#最原始的list取值方式,通过每次计算下标来获取元素
passwords = ['123456','123123','7891234','password']
count = 0
while count < len(passwords):
s = passwords[count]
print(s)
count+=1
passwords = ['123456','123123','7891234','password']
#for循环直接循环一个list,每次循环取它的值得
for p in passwords:
print(p)
#修改passwords中的内容
passwords = ['123456','123123','7891234','password']
index = 0
for p in passwords:
passwords[index] = 'abc'+p
index+=1
print(passwords)
#使用枚举函数,会计算下标和元素
passwords = ['123456','123123','7891234','password']
for index,p in enumerate(passwords):
passwords[index] = 'abc' + p
print(index, p)
print(passwords)
切片
切片同样适合于字符串
l = ['a','b','c','d','e','f','g','h','i']
print(l[0:3]) #顾头顾尾巴
print(l[:5]) #如果冒号前没写,代表从0开始取
print(l[4:]) #如果冒号后没有写,代表到结束
print(l[:]) #冒号前后都不写,取全部
print(l[0:8:2]) #从0开始,算上每隔2取一个
nums = list(range(1,101)) #range()生成一个list
print(nums[1::2]) #取100以内的偶数
print(nums[::2]) #取100以内的奇数
print(nums[::-2]) #步长为正数,从左到右取,步长为负数,从右到左取
字符串切片
#字符串切片
words = '中秋节要上课'
print(words[::-1])
for index,w in enumerate(words):
print(index, w)
回文算法
#回文算法,反过来倒过去都一样,如'上海自来水来自海上',12321
for i in range(10):
str = input("请输入一个字符串:")
if len(str) < 1:
print("字符串长度必须大于是")
elif str == str[::-1]:
print("是回文")
else:
print("不是回文")
元组
元组不能被修改,如果元组只有一个元素,需要在定义后添加逗号,不然会认为括号是运算符
创建元组
tup1 = ()
tup2 = (1,2,3,4,5,6)
tup3 = ('google','baidu',1000,2000)
tup4 = (50,)#元组中只有一个元素时,在后面添加逗号
访问元组
tup = ('google','baidu',1000,2000)
print(tup[1])
修改元组
tup = ('google','baidu',1000,2000)
tup1 = ('abc','xyz')
tup3 = tup + tup1
print(tup3)
删除元组
tup = ('google','baidu',1000,2000)
del tup
元组运算
#元组运算
print(len((1,2,3)))
print((1,2,3)+(4,5,6))
print(3 in(1,2,3))
for x in(1,2,3):
print(x)
tup =(1,2,3,4,5)
len(tup) #求元组长度
max(tup) #求元组中最大值
min(tup) #求元组中最小值
seq = [1,2,3,4,5]
tup = tuple(seq) #将列表换为元组
字典
xiaojun ={
'name':'xioajun',
'age': 21,
'sex':'男',
'addr':'北京',
'phone':'13266568006'
}
增加
stus = {}
stus['name'] = '小军'
stus['name'] = '海龙'
stus.setdefault('name', '小帆') #如果这个key已存在,setdefault不会修改这个key的值
stus.setdefault('age', 18)
stus.setdefault('sex', '男')
stus.setdefault('addr', '北京')
stus.setdefault('phone', '1961231231')
stus.update({'money':1000}) #将一个字典增加到stus中
修改
stus['name'] = '小鹏'
查询
print(stus['addr'])
print(stus.get('sex','男')) #如果查不到,get()中第二个参数就返回默认值
print(stus.keys()) #所有的key
print(stus.values()) #所有的value
for k in stus:
print(k, '===>',stus.get(k))
for k,v in stus.items():
print(k, '====>', v)
删除
del stus['phone']
stus.pop('addr')
stus.popitem() #随机删除
del stus #删除整个字典
字典多层嵌套取值
all_stus = {
'xiaojun':{
'name': 'xiaojun',
'age': 21,
'sex': '男',
'addr': '北京',
'phone': '13266568006',
'id': 1,
'cars':['牧马人','911','野马','劳斯莱斯'],
},
'hailong':{
'name': 'hailong',
'age': 21,
'sex': '男',
'addr': '北京',
'phone': '13266569006',
'id': 2,
'bags':{
'qianbao':['lv', 'ysl'],
'beibao':['coach','abc']
}
}
}
all_stus['xiaojun']['cars'].append('五菱宏光') #给xiaojun的car中添加值
print(len(all_stus['xiaojun']['cars'])) #统计xiaojun中car的数量
all_stus['hailong']['sex'] = '女' #将hailong的sex改为女
all_stus['hailong']['bags']['qianbao'].remove('lv') #删除bags中qianbao中的lv
all_stus['hailong']['bags']['kuabao']=['bac'] #增加一个kuabao
all_stus['hailong']['bags']['kuabao'].append('lv2') #在kuabao中增加lv2
all_stus['hailong']['bags'].pop('kuabao') #删除kuabao
字符串常用方法
字串符一经定义,不会被改变,对其操作会重新生成一个被处理后的新字符串。
password = ' 123456 \n 456789 '
print(password.strip()) #默认去掉字符串两边的空格和换行符
print(password.rstrip()) #右边的空格
print(password.lstrip()) #左边的空格
password1 = 'jpg 1233456789 .jpg'
print(password1.strip('.jpg')) #掉去字符串两边的.jpg
print(password1.upper()) #转成大写
print(password1.lower()) #转成小写
print(password1.capitalize()) #把首字母改成大写
print(password1.count('jpg')) #字符串出现的次数
print(password.replace('谭爱玲','上山打老虎')) #找到了就替换字符串,找不到也不报错
filename = 'a.mp3'
print(filename.endswith('.mp3')) #判断是否以xxx结尾
print(filename.startswith('196')) #判断以xxx开头
#'{name},{age}'.format(name='hhh',age=18)
names = '小军,海龙,杨帆,大朋'
names1 = '小军 海龙 杨帆 大朋'
print(names.split(',')) #以分隔符将字符串分割成list
print(names1.split()) #不指定时默认以空格切割
users = ['username','user2','user3']
#username,user2,user3
print(str(users))
res = ','.join(users) #连接可以循环的元素,和split()相反,把list变成了字符串
print(res) #结果为username,user2,user3
print(s.find("z")) #找不到时返回-1
#print(s.index("z")) #找不到时报错
print(s.count("z")) #找元素个数
print('0'.isdigit()) #判断是否是正整数
print(s.islower()) #是否小写
print(s.isupper()) #是否大写
print('abc123'.isalnum()) #字符串中是否有英文或数字
print('abc'.isalpha()) #只能是字母
print(s.isspace()) #是否空格
print('1a123'.isidentifier()) #是否为合法的变量名
print(s.splitlines()) #以换行符分割分字符串
new_l = []
for i in l:
si = str(i)
new_l.append(si.zfill(5)) #zfill()用于位数补0,会补足括号中位数
print(new_l)
import string
print(string.ascii_lowercase) #大写
print(string.ascii_uppercase) #小写
print(string.digits) #数字
print(string.punctuation) #特殊符号
print(string.ascii_letters) #大小写
Python基础-列表、元组、字典、字符串的更多相关文章
- python基础(4)-元组&字典&字符串&队列
元组(tuple) #元组相对列表来说不同之处是只读不可写 读操作和列表一致 letter_tuple = ('a','b','c','d'); print(letter_tuple[0]);#res ...
- python3速查参考- python基础 4 -> 元组 + 字典 + 字符串 的学习
元组 元组:特点就是内容不可变,算只读的列表,可以被查询,不能被修改 a = 2, print(a) print(type(a)) b = ('a','b','c') print(b[1]) 运行结果 ...
- python基础-列表元组字典
1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...
- Python学习---列表/元组/字典/字符串/set集合/深浅拷贝1207【all】
1.列表 2.元组 3.字典 4.字符串 5.set集合 6.深浅拷贝
- python之列表/元组/字典/字符串
一.列表 格式:list = ['xxx','xxx','xxx'] 性质:可以修改列表内容 copy用法: import copy names = ['] names01 = names #直接引用 ...
- python基础深入(元组、字符串、列表、字典)
python基础深入(元组.字符串.列表.字典) 一.列表 1.追加 >>>list = [1,2,3,4] #用于在列表末尾添加新的对象,只能单个添加,该方法无返回值,但是会修改原 ...
- 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- 跟着ALEX 学python day2 基础2 模块 数据类型 运算符 列表 元组 字典 字符串的常用操作
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...
随机推荐
- csp-s模拟测试54x,y,z题解
题面:https://www.cnblogs.com/Juve/articles/11606834.html x: 并差集,把不能分到两个集合里的元素和并到一起,设连通块个数为cnt,则答案为:$2^ ...
- 如何使用C++获取 进程的 绝对路径
DWORD GetProcessId(IN PCHAR szExeName) { DWORD dwRet = 0; DWORD dwCount = 0; HANDLE hSnapshot = Crea ...
- LUOGU P1291 [SHOI2002]百事世界杯之旅 (期望dp)
传送门 解题思路 期望$dp$.因为这个是期望步数,所以要倒着推.那么这道题就变得一脸可做了,设$f[i]$表示还有$i$张牌没有收集的期望,那么考虑再抽一张,有$(n-i)/n$的概率抽到抽过的牌, ...
- react antd样式按需加载配置以及与css modules模块化的冲突问题
通过create-react-app脚手架生成一个项目 然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来, 方便自己手工增减,暴露出来的配置文件在 ...
- 表单下拉框select
<!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...
- elasticsearch 中文API river
river-jdbc 安装 ./bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/pl ...
- 比特镇步行(Walk)【虚点+bfs+dfs】
Online Judge:NOIP2016十连测第一场 T3 Label:虚点,bfs,dfs 题目描述 说明/提示 对于100%数据,\(n<=200000\),\(m<=300000\ ...
- HZOI20190819模拟26题解
题面:https://www.cnblogs.com/Juve/articles/11376806.html A. 嚎叫响彻在贪婪的厂房: 是时候学习一下map和set的用法了...... 贪心:区间 ...
- noi.openjudge 二分法求函数的零点
二分法求函数的零点 总时间限制: 1000ms 内存限制: 65536kB 描述 有函数:f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121 已 ...
- leetcode算法题笔记|Reverse Integer
/** * @param {number} x * @return {number} */ var reverse = function(x) { var s; if(x<0){ s=-x; } ...