python初级:基础知识学习-循环、列表、元组、集合、字典

python初级:基础知识学习-循环、列表、元组、集合、字典

一、循环

1.for循环

for循环需要用在循环次数与循环条件明确的时候使用,否则用while

2.for循环相关

(1)range()

range(start, end, step)
python解释器中内建(自带)的一个操作,可以直接产生从start数字开始,到end数字

(2)enumerate()

将一串数据中的每个数据进行编号(从0开始),方便目标数据

name="tianxiu"
for i,x in enumerate(name):
    print(i,x)
0 t
1 i
2 a
3 n
4 x
5 i
6 u

二、列表

列表是组合数据类型中的一种,可以存放多个、有顺序的、可以重复的、可以是不同数据类型的数据

1.列表创建

# 声明空列表
names1 = []
names2 = list()
print(names1, names2)#[] []

2.列表的索引和切片

切片语法:
lst[start, end, step]
	start:开始切片的位置(包含)
	end:结束切片的位置(不包含)
	step:间隔数据个数

(1)顺序切片

names1 = list(["李白", "李元芳", "凯", "露娜", "达摩","天秀"])
print(names1[1:3])#['李元芳', '凯']

(2)间隔位置切片

names1 = list(["李白", "李元芳", "凯", "露娜", "达摩","天秀"])
print(names1[1::2])#['李元芳', '露娜', '天秀']

(3)倒叙,按循序切片

names1 = list(["李白", "李元芳", "凯", "露娜", "达摩","天秀"])
print(names1[-2:])#['达摩', '天秀']

(4)列表旋转

names1 = list(["李白", "李元芳", "凯", "露娜", "达摩","天秀"])
print(names1[::-1])#['天秀', '达摩', '露娜', '凯', '李元芳', '李白']

3.列表的常规操作

names1 = list(["李白", "李元芳", "凯", "露娜", "达摩","天秀"])
print(names1[4:2:-1])#['达摩', '露娜']

(1)增

语法:
List.append(数据):列表的末尾追加一个数据
List.insert(位置, 数据):列表指定的位置插入一个数据
List.extend([一组数据]):列表的末尾追加多个数据

(2)删

List.remove(数据):删除某个指定的数据
List.pop():删除末尾的一个数据
List.pop(索引):删除索引位置的一个数据
List.clear():清空列表中所有数据(列表还在)
del List:删除列表(列表不在了)

(3)改

List[索引] = 新的数据:就可以将索引位置的数据进行修改

(4)其他

len(L): 获取列表中数据的个数
L.reverse():翻转列表
L.sort():对列表中的所有数据进行自然排序

3.列表的扩展:推导式列表

根据给定的数据,按照一定条件将数据组成新的列表

(1)列表与for与in连用

从固定列表中得到列表元素的单一位置成分

list = [[1,2,3], [4,5,6], [7,8,9]]
#提出147
t0=[x[0] for x in list]
print(t0)
#[1, 4, 7]

(2)列表与for与in、range连用

需要提出有循序关系的元素列表属性

list = [[1,2,3], [4,5,6], [7,8,9]]
#提出[1,5,9]
t0=[list[x][x] for x in range(0,len(list))]
print(t0)
#[1, 5, 9]

(3)双for循环

利用for循环增加选择条件

#每半个小时打印一次
t=[str(x)+":"+str(y) for x in range(0,24) for y in range(0,59,30)]
print(t)
#['0:0', '0:30', '1:0', '1:30', '2:0', '2:30', '3:0', '3:30', '4:0', '4:30', '5:0', '5:30', '6:0', '6:30', '7:0', '7:30', '8:0', '8:30', '9:0', '9:30', '10:0', '10:30', '11:0', '11:30', '12:0', '12:30', '13:0', '13:30', '14:0', '14:30', '15:0', '15:30', '16:0', '16:30', '17:0', '17:30', '18:0', '18:30', '19:0', '19:30', '20:0', '20:30', '21:0', '21:30', '22:0', '22:30', '23:0', '23:30']

三、元组

元组用在项目中的一些固定数据的声明上,在工程开发过程中为了保证一些特定数据不被误操作修改导致项目出现问题,可以选择使用元组来强制约束固定的数据

1.元组创建

t1=tuple()

四、集合

集合是Python中组合数据类型的一种,python语法中使用关键字set表示集合中可以存放没有顺序的、不能重复的、可以是不同数据类型的多个数据。可以利用对数据进行去重操作
集合中不能存放重复的数据,添加到集合中的每个数据都会记录这个数据的一个整数哈希值,新增数据时首先获取新数据整数哈希值,然后使用新数据的整数哈希值和已经存在的所有数据的整数哈希值进行等值判断,如果相等说明这个数据已经在集合中存在了所以不允许添加,如果不相等说明这个数据在集合中不存在可以添加。

1.集合创建

t1=set()
#显示虽然为{}。但是{}无法声明空集合

2.单集合操作

add(obj):向集合中增加一个数据
discard(obj):删除集合中的一个指定数据(如果数据不存在什么都不做)
remove(obj):删除集合中的一个指定数据(如果数据不存在就报错)
pop():随机删除集合中的一个数据
clear():清空集合中的数据
copy():复制一个集合

五、字典

字典是Python中的组合数据类型之一,使用关键字dict表示。
字典中可以存储多个key:value(键值对)数据,key不能重复,value可以重复,字典中可以直接通过key获取到对应的value数据。

1.字典创建

#声明空字典
dct1=dict()
print(dct1,type(dct1))
#{} <class 'dict'>
dct2={
   }
print(dct2,type(dct2))
#{} <class 'dict'>
#申明非空字典
dct3={
   "xingming":"tianxiu","mima":"111"}
print(dct3,type(dct3))

2.字典操作

(1)增

dct1=dict()
#增加数据
dct1["password"]="mima"
print(dct1)
#{'password': 'mima'}

#增加一个键值对
dct1.setdefault("name","tianxiu")
print(dct1)
#{'password': 'mima', 'name': 'tianxiu'}

#增加多个键值对
dct1.update({
   "school":"lsh","like":"football"})
print(dct1)
#{'password': 'mima', 'name': 'tianxiu', 'school': 'lsh', 'like': 'football'}

(2)删

dct1=dict()
#增加数据
dct1["password"]="mima"
print(dct1)
#{'password': 'mima'}

#增加一个键值对
dct1.setdefault("name","tianxiu")
print(dct1)
#{'password': 'mima', 'name': 'tianxiu'}

#增加多个键值对
dct1.update({
   "school":"lsh","like":"football"})
print(dct1)
#{'password': 'mima', 'name': 'tianxiu', 'school': 'lsh', 'like': 'football'}

#修改
dct1["name"]="xilei"
print(dct1)
#{'password': 'mima', 'name': 'xilei', 'school': 'lsh', 'like': 'football'}

dct1.update({
   "password":"567"})
print(dct1)
#{'password': '567', 'name': 'xilei', 'school': 'lsh', 'like': 'football'}

#删除
dct1.pop("like")
print(dct1)
#{'password': '567', 'name': 'xilei', 'school': 'lsh'}

(3)改

dct1=dict()
#增加数据
dct1["password"]="mima"
print(dct1)
#{'password': 'mima'}

#增加一个键值对
dct1.setdefault("name","tianxiu")
print(dct1)
#{'password': 'mima', 'name': 'tianxiu'}

#增加多个键值对
dct1.update({
   "school":"lsh","like":"football"})
print(dct1)
#{'password': 'mima', 'name': 'tianxiu', 'school': 'lsh', 'like': 'football'}

#修改
dct1["name"]="xilei"
print(dct1)
#{'password': 'mima', 'name': 'xilei', 'school': 'lsh', 'like': 'football'}

dct1.update({
   "password":"567"})
print(dct1)
#{'password': '567', 'name': 'xilei', 'school': 'lsh', 'like': 'football'}

(4)查

#查询
#查询数据
print(dct1["school"])
#通过key查询value數据
print(dct1.get("name")) # 通过key查询value数据(只能用来查询)
print(dct1.keys()) # 获取所有的key数据
print(dct1.values()) # 获取所有的value数据
print(dct1.items()) # 获取所有的key:value数据
#lsh
#xilei
#dict_keys(['password', 'name', 'school'])
#dict_values(['567', 'xilei', 'lsh'])
#dict_items([('password', '567'), ('name', 'xilei'), ('school', 'lsh')])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114462.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 使用cef3开发的浏览器不支持flash问题的解决

    使用cef3开发的浏览器不支持flash问题的解决开发浏览器时遇到了flash的问题,网上搜了下,解决的方法基本是加npapi、ppapi,一开始奔着ppapi去的,没有解决,后来用的npapi,在项目的output下新建plugins文件夹,将NPSWF32_22_0_0_209.dll拷入到文件夹下。问题解决。

  • 撸吧,你活不到明天了

    撸吧,你活不到明天了还记得PKAV上only_guest的那句话吗?还在撸?少年。删了LOL,拿起你的鼠标,跟我一起拯救世界!真心地也劝君一句:小撸怡情,大撸伤身,强撸灰飞烟灭-_-(当然,如果你自认为是小撸的话就

  • QXDM打印高通sensor 日志问题总结

    QXDM打印高通sensor 日志问题总结在使用QXDM打印高通sensor日志的时候,经常会发现有些赋予已经权限很高的log居然打印不出来,这就个代码的追踪带来了一系列困难,鉴于此,我研究了一下高通中log打印问题,给大家今后的使用带来一些经验。在高通的关于日志的头文件定义中,许多日志是默认不打开的,研究代码:#if(BUILD_DRAGON_BOARD)&&(DEBUG_DATA)#defineLSM6DSM_DATA_M

  • zen cart template zencart模板修改[通俗易懂]

    zen cart template zencart模板修改[通俗易懂]encarttemplatezencart模板修改byZENCART模板 | postacomment下面简单的介绍下zencart网站模板的修改。修改较多的地方:(常用代码)一:头部文件为(例子):D:AppServwwwzencart12698includestemplatestheme3common–tpl_header.php1.

  • Ant Design A-table 表格 后端 排序问题

    Ant Design A-table 表格 后端 排序问题

  • AvalonDock 2.0+Caliburn.Micro+MahApps.Metro实现Metro风格插件式系统(一)

    AvalonDock 2.0+Caliburn.Micro+MahApps.Metro实现Metro风格插件式系统(一)随着IOS7由之前UI的拟物化设计变为如今的扁平化设计,也许扁平化的时代要来了,当然我们是不是该吐槽一下,苹果什么时候也开始跟风了,自GOOGLE和微软界面扁平化过后,苹果也加入了这一队伍。AvalonDock  AvalonDock是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件。最新发布的版本原生支持MVVM框架、AeroSnap特效…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号