1.列表list

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

1.定义列表

 names = ["Ronaldo","Messi","Torres"]
data = [["cpu","i7"],["gpu","gtx1080"],["ram","16GBddr5"]]

2.访问列表内的元素。下标从0开始计数

>>> names[0]
Ronaldo
>>> names[-1] #倒序取
Torres >>> data[0][1]
i7
>>> data[-2][0] #倒序取
gpu
>>> data[-2][-1]
gtx1080

3.切片操作

>>>names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]
>>>names[2:3] #取下标介于2到3之间的元素,不包含下标为2、3的元素》
['Torres', 'Gerrard']
>>>names[:3] #等价于names[0:3]
['Ronaldo', 'Messi', 'Torres']
>>>names[2:] #取下标2到最后一个值
['Torres', 'Gerrard', 'Suarez']
>>>names[0::2] #每隔2个元素取一次
['Ronaldo', 'Torres', 'Suarez']
>>>names[::2 ]
['Ronaldo', 'Torres', 'Suarez']
>>>names[1::3] #从下标1开始每隔3个元素取一次
['Messi', 'Suarez']
>>>names[1:4:2] #从下标1-4之间,每隔2个元素取一次
['Messi', 'Gerrard']

4.追加元素

使用append()方法,在列表最后增加元素

1 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]
2 names.append("Ronney")
3 print(names)
['Ronaldo', 'Messi', 'Torres', 'Gerrard', 'Suarez', 'Ronney']

5.插入元素

使用insert()方法

 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"] 
2
3 names.insert(3,"Griezmann") #插入在下标3之前
4 print(names)
['Ronaldo', 'Messi', 'Torres', 'Griezmann', 'Gerrard', 'Suarez']

1 names.insert(0,"Griezmann") #插入在下标0之前
2 print(names)
['Griezmann', 'Ronaldo', 'Messi', 'Torres', 'Griezmann', 'Gerrard', 'Suarez']

6.修改元素

names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]
names[2] = "Bale" #按照下标号码修改
print(names)
['Ronaldo', 'Messi', 'Bale', 'Gerrard', 'Suarez'] names[2] = ["Bale"] #注意如果写了括号相当于传了一个列表进入
print(names)
['Ronaldo', 'Messi', ['Bale'], 'Gerrard', 'Suarez']

7.删除元素

使用del()/remove()/pop()方法

names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]
del names[0] #删除对应下标元素
names.remove("Messi") #删除指定元素
print(names)
['Torres', 'Gerrard', 'Suarez']
names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]
names.pop() #删除最后一个元素
names.pop(1) #删除对应下标
print(names)
['Ronaldo', 'Torres', 'Gerrard']

8.扩展

使用extend()方法

 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]
names2 = ["Bale","Higuaín"] names.extend(names2)
print(names)
['Ronaldo', 'Messi', 'Torres', 'Gerrard', 'Suarez', 'Bale', 'Higuaín']

9.统计元素、获取下标

count统计元素个数

 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez","Messi"]

 count = names.count("Messi")
print(count)
#输出结果:2

index获取元素下标

 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez","Messi"]

 index = names.index("Messi")
print(index)
#输出结果:1 只返回第一个找到的下标

10.翻转列表

使用reverse()方法

 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]

 names.reverse()
print(names)
['Suarez', 'Gerrard', 'Torres', 'Messi', 'Ronaldo']

11.排序

使用sort()方法

 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez"]

 names.sort()
print(names)
['Gerrard', 'Messi', 'Ronaldo', 'Suarez', 'Torres'] #按照字母顺序

注意:Python3里不同数据类型不能放在一起排序
这样的列表使用sort方法排序会报错 names = ["Ronaldo","Messi","Torres","Gerrard","Suarez",1,2]

12.复制

copy.copy  称为浅copy....   所谓浅copy就是对引用的拷贝

copy.deepcopy 称为深copy...  所谓深copy就是完成拷贝一个副本

 import  copy
a=['hello',[1,2,3]]
b=copy.copy(a)
c=copy.copy(a) a[0]='world'
a[1].append(4)
print(a)
print(b)
print(c)

['world', [1, 2, 3, 4]]
    ['hello', [1, 2, 3, 4]]
    ['hello', [1, 2, 3]]

通过输出结果发现,浅copy的列表b,由于a列表进行中的第二个元素列表进行了修改,b列表随着a改变。c列表完全是最初a列表的副本,不受a变化的影响。

2.元组Turple

元组不能修改,只能查询,又叫只读列表

元组只有Count和Index方法

 names = ("Ronaldo","Messi","Torres","Gerrard","Suarez")
print(names)
('Ronaldo', 'Messi', 'Torres', 'Gerrard', 'Suarez')
 count = names.count("Ronaldo")
index = names.index("Ronaldo")
print(count,index)
1 0

3.字符串String

常用操作

 str = "helloworld"

 str.capitalize()   #首字母大写,输出结果Helloworld
str.casefold() #大写全部转小写
str.center(15,"*") #输出 ***helloworld**
str.count('l') #统计字符串种出现的次数,输出结果为3
str.encode() #将字符串编码成bytes格式
str.endswith("ld") #判断结尾是否以“ld”结尾,输出结果为True 同理有startwith()方法
 str.index('e')        #返回e所在字符串的索引
str.isalnum() #是否为字母数字
str.isdigit() #判断是否整数
str.isnumeric() #是否为数字
str.isprintable() #是否可打印
str.isspace() #是否为空格
str.istitle() #是否为标题
str.isupper() #是否全为大写
str.isalpha() #是否是字母,带数字之类的为False
str.islower() #是否全为小写
str.isdecimal() #是否包含十进制数字
str.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
13 str.swapcase() #大小写互换
#jion()方法,以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
str = "-";
seq = ("a", "b", "c") # 字符串序列
print(str.join( seq ))
输出:a-b-c
#split() 方法,以string为分隔符,分割字符串
str = "Helloworld"
m = str.split("o") #split("o",2)可设置最大分割次数
print(m) #输出 ['Hell', 'w', 'rld']
 str.strip()   #去掉字符串左右两边的空格,lsrtip()即只去除左边的空格
str.find("o") #检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 str.rfind("o") #类似于 find()函数,但是从右边开始查找.
#partition   把字符串分割成一个3元素 元组
str = "Helloworld"
m = str.partition("o")
print(m)
#输出 ('Hell', 'o', 'world')
 #ljust(),填充字符串,同理还有rjust()方法
str = "Helloworld"
m = str.ljust(15,"*")
print(m)
# 输出 Helloworld*****
 #replace()方法,新字符串替代旧字符串
str = "Helloworld"
m = str.replace("Hello","Nihao")
print(m) #输出 Nihaoworld

4.字典Dict

字典是一种key - value 的数据类型,无序,key必须是唯一的,可储存任意类型对象。

定义一个字典

 d = {"name1":"Michael ",
"name2":"Trevor",
"name3":"Franklin "}

常用操作

#增加
d["name4"]=["Niko"]
>>>{'name2': 'Trevor', 'name3': 'Franklin ', 'name4': ['Niko'], 'name1': 'Michael '} #修改
d["name1"]=["Niko"]
>>>{'name3': 'Franklin ', 'name2': 'Trevor',, 'name1': ['Niko']} #删除
d.pop("names")
d.popitem() #随机删除
del d["name1"] #查找
#A in B 字符串、列表、字典等都可以使用
>>>d = {"name":["Michael ","Trevor","Franklin "]}
>>>"name1" in d
True # key不存在,就报错 #获取value
>>>d["name1"]
Michael #若key不存在会报错 >>>d.get("name1")
Michael #若key不存在返回None

其他方法

 #获取Value
d.values()
dict_values(['Franklin ', 'Michael ', 'Trevor']) #获取Key
d.keys()
dict_keys(['name2', 'name1', 'name3'])
 #update 把一个字典的键值添加到另外一个字典里
d = {"name1":"Michael ",
"name2":"Trevor",
"name3":"Franklin "} d2 = {"name4":"Niko"}
d.update(d2)
print(d)
{'name1': 'Michael ', 'name2': 'Trevor', 'name4': 'Niko', 'name3': 'Franklin '} #setdefault 查找键值, 键不存在时,设置默认键值
d = {"name1":"Michael ",
"name2":"Trevor",
"name3":"Franklin "} m = d.setdefault("name1","Niko")
t = d.setdefault("name4","Niko")
print(m)
print(t)
#输出Michael
#输出Niko
 # 函数以列表返回可遍历的(键, 值) 元组数组
d = {"name1":"Michael ",
"name2":"Trevor",
"name3":"Franklin "}
u = d.items()
print(u)
dict_items([('name2', 'Trevor'), ('name3', 'Franklin '), ('name1', 'Michael ')])

字典循环

 #方法1
for key in info:
print(key,info[key]) #方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
print(k,v)

5.集合Set

集合是无序、不重复的,与数学意义上的集合有相似之处

定义一个集合

 a = set([1,2,6,8,9])
b = set(["what","where","when"])
print(a)
print(b)
{8, 1, 2, 6, 9}
{'when', 'where', 'what'}

常用操作

set1 = set([1,2,6,8,9])
set2 = set([3,6,9]) a = set1 | set2 #求并集
a = set1.union(set2)
print(a)
{1, 2, 3, 6, 8, 9} a = set1 & set2 #求交集
a = set1.intersection(set2)
print(a)
{9, 6} a = set1 - set2 #求差集
a = set1.difference(set2)
print(a)
{8, 1, 2} a = set1 ^ set2 #求对称差集,即获得两个集合不交叉的元素
a = set1.symmetric_difference(set2)
{1, 2, 3, 8} ################
set1 = set([1,2,6,8,9])
set2 = set([6,9])
a = set1 >= set2 #集合1是否包含集合2 等价于issuperset()方法
b = set1 <= set2 #集合2是否包含集合1 等价于 issubset()方法
print(a)
print(b)

基本操作

set1 = set([1,2,6,8,9])

#增加
set1.add(5)
#输出{1, 2, 5, 6, 8, 9} #增加多项
set1.update([5,10])
#输出{1, 2, 5, 6, 8, 9, 10} #删除
set1.remove(6) # 若元素不存在会报错
set1.discard(6) # 若元素不会报错
#输出{8, 1, 2, 9}
set1.pop() #随机删

Python学习笔记-基础2的更多相关文章

  1. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  2. Python 学习笔记---基础篇

    1. 简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200 import subprocess cmd="cmd.exe" b ...

  3. Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作

    目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...

  4. Python学习笔记——基础篇【第四周】——迭代器&生成器、装饰器、递归、算法、正则表达式

    目录 1.迭代器&生成器 2.装饰器 a.基本装饰器 b.多参数装饰器 3.递归 4.算法基础:二分查找.二维数组转换 5.正则表达式 6.常用模块学习 #作业:计算器开发 a.实现加减成熟及 ...

  5. VS2013中Python学习笔记[基础入门]

    前言 在上一节中简单的介绍了在VS2013中如何进行开发Hello World,在VS2013中进行搭建了环境http://www.cnblogs.com/aehyok/p/3986168.html. ...

  6. Python学习笔记基础篇-(1)Python周边

    一.系统命令 1.Ctrl+D 退出Python IDLE input方法中输入EOF字符,键入Ctrl+D 2.命令行选项: -d   提供调试输出 -O 生成优化的字节码(.pyo文件) -S 不 ...

  7. Python学习笔记——基础篇2【第三周】——计数器、有序字典、元组、单(双)向队列、深浅拷贝、函数、装饰器

    目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双 ...

  8. Python学习笔记——基础篇【第五周】——正在表达式(re.match与re.search的区别)

    目录 1.正在表达式 2.正则表达式常用5种操作 3.正则表达式实例 4.re.match与re.search的区别 5.json 和 pickle 1.正则表达式   语法: import re # ...

  9. Python学习笔记——基础篇【第六周】——面向对象

    Python之路,Day6 - 面向对象学习 本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.       同时可参考链接: http:// ...

  10. Python学习笔记——基础篇【第七周】———进程、线程、协程篇(socket基础)

    http://www.cnblogs.com/wupeiqi/articles/5040823.htmlhttp://i.cnblogs.com/EditPosts.aspx?postid=55437 ...

随机推荐

  1. 区间求小于等于k的数字个数 hdu4177

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目意思给出一个序列,叫我们求一个区间里面小于等于k的数字个数. 这里面我用分块和主席树两种方法 ...

  2. CSL 的神奇序列(猜猜猜?)

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

  3. P3865 【模板】ST表

    P3865 [模板]ST表 https://www.luogu.org/problemnew/show/P3865 题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数 ...

  4. QT Designer基础——登录界面设计基础版2

    认识QT Designer提供的可选控件:以下八个大类 Layouts:布局相关 Spacers:留空 Buttons:可点击的按钮类 Item Views和 Item Widgets:高级控件,例如 ...

  5. zabbix学习笔记----概念----2019.03.25

    1.zabbix支持的通讯方式 1)agent:专用的代理程序,首推: 2)SNMP:  3)SSH/Telnet:  4)IPMI,通过标准的IPMI硬件接口,监控被监控对象的硬件特性. 2)zab ...

  6. 玩转postman(一)-----基础

    postman的GUI界面以及各个组件介绍 主界面如下 打开postman的GUI界面以及各个元素组件介绍 分为下三部分: 1.Head navigation bar (头部导航栏):此部分有以下选项 ...

  7. HTML5学习路线导航

    一.基本标签元素 1.基础标签第一篇 2.基础标签第二篇 3.表单form的使用 4.新增表单验证 二.CSS样式表 4.CSS插入样式表的三种格式 5.六大选择器 6.样式内容详细讲解 7.背景渐进 ...

  8. 一键脚本清理DEBIAN系统无用组件 减少系统资源

    虽然如今我们选择服务器资源都比较多,以前我们看到很多128MB内存.甚至32MB内存的建站网站,感觉特别羡慕.其实这些也不是难事,相比之下,DEBIAN系统比CENTOS系统占用资源少,然后我们需要进 ...

  9. Python之路(第三十八篇) 并发编程:进程同步锁/互斥锁、信号量、事件、队列、生产者消费者模型

    一.进程锁(同步锁/互斥锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理. 例 ...

  10. jquery瀑布流排列样式代码

    <!DOCTYPE html><html><head lang="en"> <meta charset="gb2312" ...