Python基础

前言

python学习的第二周记录,元组后的笔记可能会更简洁点

列表

特点和格式

列表存储的是多个对象的引用
任意数据类型混存且可重复储存
创建格式eg:lst=['hello','98','world']
或者lst2=list(['hello','98','world'])

索引

索引是从0开始算(正序)从-1开始(逆序)

lst=['hello','98','world']
print(lst[0],lst[-1])

出来的结果是hello world(如果对象不在里面则VlueError)
获取指定元素的索引
eg:lst=['hello','98','world'] print(lst.index('hello'))出来的结果是0(如果列表中有相同元素则返回第一个相同元素的索引值)
lst=['hello','98','world''hello'] print(lst.index('hello',0,4))的意思是在0到4中返回hello的索引值

查询

获取列表的多个元素语法格式:[start:stop:step](无step的话默认为1(start为0))eg:

lst=['ad','ac','bc','asc',1,3,4]
print(lst[6:0:-2])

结果为[4, 1, ‘bc’]

遍历

lst=['ad','ac','bc','asc',1,3,4]
for a in lst:
    print(a)

就会把列表中的值一一输出

添加删除修改

添加

append
lst=['ad','ac','bc','asc',1,3,4]
lst2=[1,2,4]
lst.append(90)#添加一个元素
print(lst)
#结果是['ad','ac','bc','asc',1,3,4,90]

extend
lst=['ad','ac','bc','asc',1,3,4]
lst2=[1,2,4]
lst.extend(lst2)#添加多个元素
print(lst)
#结果是['ad', 'ac', 'bc', 'asc', 1, 3, 4]

insert
lst=['ad','ac','bc','asc',1,3,4]
lst.insert((1,80)#任位置插入一个或多个数
print(lst)
#结果是['ad’,80,'ac','bc','asc',1,3,4]

删除

remove
lst=['ad','ac','bc','asc',1,3,4]
lst.remove('ad')#从列表中移除一个元素,若重复则除第一个
print(lst)
#结果['ac', 'bc', 'asc', 1, 3, 4]

pop
lst=['ad','ac','bc','asc',1,3,4]
lst.pop(2)#根据索引移除元素
print(lst)
#结果['ad', 'ac', 'asc', 1, 3, 4]


切片
lst=['ad','ac','bc','asc',1,3,4]
newlst=lst[1:4]#从一开始截到四(不包括四),然后得到新列表对象
print(newlst)#新列表对象
lst[1:4]=[]#令切片等于空列表
print(lst)#删后列表
#运行结果:['ac', 'bc', 'asc']
#         ['ad', 1, 3, 4]

clear#清除所有元素
del#将列表对象删除

修改

lst=[10,20,30,40,80]
lst[2]=100
print(lst)
#结果:[10, 20, 100, 40, 80]


#多个的修改
lst=[10,20,30,40,80]
lst[1:3]=[200,300,400]#修改一到3(不包括3)的值
print(lst)
#结果:[10, 200, 300, 400, 40, 80]

排序

#简单升序
lst=[30,40,53,23,12]
lst.sort()
print(lst)

#升降序
lst=[30,40,53,23,12]
lst.sort(reverse=True)#降序
print(lst)
lst.sort(reverse=False)#升序
print(lst)

#sorted函数将产生一个新的列表对象
lst=[30,40,53,23,12]
new_lst=sorted(lst)#自动按升序排列
print(new_lst)
a_lst=sorted(lst,reverse=True)#降序
print(a_lst)
#结果[12, 23, 30, 40, 53]
#   [53, 40, 30, 23, 12]

#另种创建及排序
lst=[i for i in range(1,10)]
print(lst)
#结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

字典

格式及创建

#第一种创建
abab={'一':1,'二':2,'三':3}#一是键,1是值
print(abab)

#第二种
ab=dict(a='d',f='k')
print(ab)

#上面的运行结果是
{'一': 1, '二': 2, '三': 3}
{'a': 'd', 'f': 'k}

获取

#第一种获取
abab={'一':1,'二':2,'三':3}
print(abab['一'])
#结果:1


#第二种获取
print(abab.get('一'))
#结果:1

#查找不存在时返回默认值
print(abab.get('四',10086))
#结果:10086

增删改

#删
abab={'一':1,'二':2,'三':3}
del abab['一']
print(abab)
#增
abab['四']=4
print(abab)
#改
abab['四']=5
print(abab)
#结果{'二': 2, '三': 3}
#   {'二': 2, '三': 3, '四': 4}
#   {'二': 2, '三': 3, '四': 5}

获取字典视图

abab={'一':1,'二':2,'三':3}
#获取key
keys=abab.keys()
print(keys)
print(list(keys))

#获取value
values=abab.values()
print(values)
print((list(values)))

#获取value-key对
items=abab.items()
print(abab)
print(list(items))

遍历

abab={'一':1,'二':2,'三':3}
for item in abab:
    print(item,abab[item])
    #结果是一 1
#         二 2
#         三 3

生成(打包)

a=['一','二','三']
b=[1,2,3]
c={a:b for a,b in zip(a,b)}
print(c)
#结果是:{'一': 1, '二': 2, '三': 3}

元组

a=('aab','abc','bbb','ddd')#元组的创建
print(a)
print(a[1:3])#切片
#结果:('aab', 'abc', 'bbb', 'ddd')
#     ('abc', 'bbb')

#如果元组只有一个元素需要在元素的后面填一个括号
b = ("哒哒哒",)#这样创建的才是元组

#注意元组不可变(地址)但如果里面是列表的话可变
c = (3,4,5,['dada','baba'])
c[3].append('ccc')
print(c)
#结果:(3, 4, 5, ['dada', 'baba', 'ccc'])

集合

#集合
s = {3,4,5,'哒哒哒',8,7}
print(s)
#结果:{3, 4, 5, 7, 8, '哒哒哒'}
#注意集合里的必须是可哈希的
#可哈希:(基本是不可变)int,str,tuple,bool
#不可哈希:list,dict,set


#添加
s.add('啊吧')
print(s)
#结果:{3, 4, 5, 7, 8, '啊吧', '哒哒哒'}

#删除
s.pop()
print(s)
#结果:{4, 5, 7, 8, '啊吧', '哒哒哒'}(默认删第一个)
s.remove('哒哒哒')
print(s)
#结果:{4, 5, 7, 8, '啊吧'}


#查询
for item in s:
    print(item)

交集 并集 差集 去重

s = {3,4,5,'哒哒哒',8,7}
b = {3,5,'哒哒哒',0}

#交集
print(s&b)
print(s.intersection(b))
#并集
print(s|b)
print(s.union(b))
#差集
print(s - b)
print(s.difference(b))
#运行结果:{3, '哒哒哒', 5}
#        {3, '哒哒哒', 5}
#        {0, 3, 4, 5, 7, 8, '哒哒哒'}
#        {0, 3, 4, 5, 7, 8, '哒哒哒'}
#        {8, 4, 7}
#        {8, 4, 7}

#去重(去列表的重复数据)
lst = ['哒哒哒','哒哒哒','aaa',2]
print(list(set(lst)))
#结果:[2, 'aaa', '哒哒哒'](顺序会乱)

byte的编码和解码

#转化
#str.encode("编码“)
#bytes.decode("编码“)(解码)
a = "你爸爸"
a1 = a.encode("gbk")#编码
a2 = a1.decode("gbk")#解码
b = a2.encode("utf-8")#重新编码
print(b)
#运行结果:b'\xe4\xbd\xa0\xe7\x88\xb8\xe7\x88\xb8'

文件操作

读取

#模板:open(文件路径,mode=",encoding="")
f = open("E:/abab.txt",mode="r",encoding="utf-8")
content = f.read()
print(content)
#结果是:嘿嘿嘿
#       sbdbbjanjf
#一行行的读取
f = open("E:/abab.txt",mode="r",encoding="utf-8")
for line in f:
    print(line.strip())#strip()用于去换行
#运行结果:嘿嘿嘿
#         sbdbbjanjf



写入

#写入
f = open("hello world.txt",mode="w",encoding="utf-8")#w模式下如果没有文件会自动创建
#w模式下每一次open都会清空内容
#写入
f.write("adf")
f.close()#要养成随手关闭的习惯

#写入列表
f = open("hello world.txt",mode="w",encoding="utf-8")
lst = ["ani","jjj","ii"]
for item in lst:
    f.write(item)
    f.write("\n")
f.close()

#追加写入append
f = open("hello world.txt",mode="a",encoding="utf-8")
f.write("nb")

with

with open("hello world.txt",mode="r",encoding="utf-8") as f:
    for line in f:
        print(line.strip())

可以不用关闭文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值