Python基础2

Python基础2

一、列表

1、list 取值是通过下标进行取的

l = ['a','b','c' ]  #一维数组
l2 = [1,2,3,4,["abc",'123','456'] ]     #二维数组
l3 = [1,2,3,4,["abc",'123','456',["a",'b','c']]]    #三维数组

2、list 增、删、修改

#
l = ['a','b','c' ]
l.append('d')       #在末尾增加元素
l.insert(0,'e')     #指定位置增加元素
l.insert(7,'k')     #如果你指定的下标没有,那么久加到最后面

#修改
l[2] = 98.98

#删除
l.pop(3)        #指定下标删除
l.remove('王宇建')     #指定元素删除
del l[0]    #指定下标删除

print(l.count('1'))  #统计元素个数
print(l.index('1')) #找某个元素的下标
print(l.reverse())  #反转list

l =['1','2','3']
l2 = [4,5,2,24,23,3252,352,1252,235]
l2.sort(reverse=False)   #顺序排序
l2.sort(reverse=True)    #倒序排序
l2.clear()      #清空list
l3 = l + l2     #直接相加就是把两个list合并成一个list
l.extend(l2) #把l2里面的元素加入到l里面

 3、list 循环

#list可以直接循环
students = ['a','b','c']
for i in students:
    print(i)

4、list生成式

#list生成式
l3=[]
for i in range(10):
    if i%2==0:
        l3.append(i)

二、字典

1、字典取值、新增、修改、删除

#字典格式是key - value
d = {
      'name':'xmb',
      'idcard_no':1212,
      'sex':'未知',
      'addr':'广州',
      '手机号':18620838281
}
#取值
print(d['money'])   #取不存在的key会报错
print(d.get('money',0)) #取不存在的key返回none,填写值,不存在返回填写的值

#增加key
d['sex'] = 500  #如果key存在,就修改它的值
d.setdefault('car','bmw')   #如果key存在,那就不管了

#修改
d['sex'] = '' #修改

#删除
d.pop('sex')    #删除指定的key,会返回删除的值
del d['sex']    #删除指定的key

d.clear() #清空字典

print(d.keys())     #获取字典里面所有的key
print(d.values())   #获取字典里面所有的value

2、字典循环

d  = {
      "id": 1,
      "name": "xmb",
      "sex": "",
      "age": 27,
      "addr": "广州",
      "grade": "金牛座",
      "phone": "18317155664",
      "gold": 100
    }
#方式一:
for k in d:             #直接循环字典,每次取的是字典里面的key
    value = d.get(k)    #循环的时候同时取到key和value
    print(k,value)
print(d.items())    #直接获取字典里的key/value
print(d.keys())     #获取字典里的所有key

#判断
#if 'id' in d: #如果字典用in来判断的话,它判断的是key存在不存在
if 'id' in d.keys():
    print('存在')

例子:

s2={'xmb1':'1111','xmb2':'1222','xmb3':'3333'}
for i in range(3):
    username=input('username:').strip()
    password=input('password:').strip()

    if username=='' or password=='':
        print("账号/密码不能为空")
    elif username in s2:
        print('登陆的用户存在')
        if password==s2[username]:
            print("账号/密码正确")
            break
        else:
            print("账号/密码错误")
    else:
        print('账号不存在')

else:
    print("超过了次数")

三、集合

#集合自动去重
s = {1,2,3,1,2,3}
print(set(s))

#定义空集合
s2 = set()

#关系测试
#集合是无序的
a = {1,2,3}
b = {3,4,5}

#取交集
print(a & b)
print(a.intersection(b))

#并集,把两个集合合并到一起,然后取掉重复的
print(a.union(b))
print(a|b)

#差集,在a集合里面存在,但是在b集合里面没有的
print( a - b )
print( a.difference(b))

#往集合增加元素
a.add('123')

# 删除集合里的元素
a.remove('2')

四、元组

#元组,元组里面的数据不可以修改
tup = (1,2,3,4)
tup1 = ('abc','xmb')

#访问元组
print('tup:',tup[1])
print('tup:',tup[2:3])

#组合元组
tup2 = tup + tup1
print(tup2)

五、切片

#切片就是对list一个范围的取值,顾头不顾尾
l = [1,2,3,4,5,6,7,8,9,10]
s='abc1234'
L2 = l[::-1]    #第三个数字是步长
L3 = s[::2]
print(L2)
print(L3)

1、可变数据类型:list、dict

2、不可变数据类型:tuple、str、float、int

3、不要循环删list,会导致下标错乱

l = [1,1,2,3,4,5,6,7,8,9,10]
for i in l:
    if i%2!=0:
        l.remove(i)
print(l)

4、浅拷贝内存地址不变,深拷贝的话,内存地址会变

import copy
l = [1,2,3,4,5,6]
# l2 = l   #浅拷贝
l2 = copy.deepcopy(l)  #深拷贝
print('l的内存地址',id(l))
print('l2的内存地址',id(l2))

六、文件读写

f = open('users.txt',encoding='utf-8')  #打开文件
result = f.read()     #读文件
print(result.split(','))  #以,分割字符串

七、string模块

import string
print(string.ascii_uppercase)  #所有大写字母
print(string.ascii_lowercase)  #所有小写字母
print(string.digits)            #所有数字
print(string.punctuation)       #所有特殊字符
print(string.ascii_letters)     #所有大小写字母

八、random模块

import random
l=[1.2,2.3,3.3,4.3,5.3,6.3]

result = random.sample(l,3)   #从序列中随机获取的三个元素
result1 = random.choice(l)    #从序列中随机获取一个元素
result2 = random.randint(1,1000)  #随机生成指定范围的整数
result3 = random.random()       #生成0到1随机浮点数
result4 = random.uniform(1,10)  #随机生产指定范围的浮点数
result5 = random.randrange(10,20,5) #从指定范围内,按指定基数递增的集合中 获取一个随机数(如:5是递增数)
result6 = random.shuffle(l)  #打乱序列中元素的顺序

 

 

 
 

 

转载于:https://www.cnblogs.com/xumb/p/11491736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值