Python基础-列表、元组、字典、字符串

栏目: Python · 发布时间: 6年前

内容简介:list中可以放不同类型的值,list的下标从0开始。切片切片同样适合于字符串

多维数组

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()) #不指定时默认以空格切割

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

High Performance JavaScript

High Performance JavaScript

Nicholas C. Zakas / O'Reilly Media / 2010-4-2 / USD 34.99

If you're like most developers, you rely heavily on JavaScript to build interactive and quick-responding web applications. The problem is that all of those lines of JavaScript code can slow down your ......一起来看看 《High Performance JavaScript》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器