Python基础(list、tuple、dict、set用法、条件判断和循环)

一、list用法

list是Python内置的一种数据类型。

特点:有序,可删除、修改、添加。

定义一个list

>>> name=['marry','hike','mory']
>>> name
#执行结果:
['marry', 'hike', 'mory']

获取list长度:

len(name)
#执行结果:
3

根据索引获取值:

>>> name[0]
'marry'
>>> name[2]
'mory'
>>> name[3]

也可以从后往前,最后一个元素索引是-1

>>> name[-1]
'mory'
>>> name[-2]
'hike'

往list末尾追加元素

>>> name.append('zhao na')
>>> name
['marry', 'hike', 'mory', 'zhao na']

在指定索引处添加元素

>>> name.insert(0,'zhang jia he')
>>> name
['zhang jia he', 'marry', 'hike', 'mory', 'zhao na']

删除最后一个元素或者删除指定索引元素

>>> name.pop()
'zhao na'
>>> name
['jia he', 'marry', 'hike', 'mory']
>>> name.pop(0)
'jia he'
>>> name
['marry', 'hike', 'mory']

修改指定索引元素 (可见list允许不同类型的数据)

>>> name[1]='张三'
>>> name
['marry', '张三', 'mory']

二、tuple用法

特点:一旦初始化就不能修改,没有append()、insert()方法

tuple不可变,所以更安全。所以能用tuple代替list就尽量用tuple.

定义一个tuple:

>>> t=(1,2,3,4,5)
>>> t
(1, 2, 3, 4, 5)

看一个特殊的:

>>> t=(1)  #存在歧义
>>> t
1
>>> t=(1,)  #要定义只包含一个元素的tuple 要加,
>>> t
(1,)

tuple的“不可变”指的是元素的指向不变,这里改变的是list的指向,而没有改变tuple指向的list

>>> t=(1,2,[3,4,5])
>>> t[2][2]=6
>>> t
(1, 2, [3, 4, 6])

三、条件判断

1. if 语句
age = 20
if age>= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')

简写if 语句:

if x:
    print("True")
    
#表示只要x 是非零数值,非空字符串,非空List等,就判断为True循环
2.循环
2.1 for…in 依次把list或tuple中元素迭代出来
name=['a','b','c','d']
for i in name:
    print(i)
    
#执行结果:
a
b
c
d

计算1-10整数之和:

sum=0
for i in [1,2,3,4,5,6,7,8,9,10]:
    sum += i
print(sum)
#执行结果:
55

如果要计算1-10000呢?

Python提供一个range()函数,可以生成一个整数序列,再通过list()函数转换为list。比如:range(5)生成的序列是从0开始小于5的整数

>>>list(range(5))
#执行结果:
[0,1,2,3,4]

再来计算1-100的累加和

sum=0;
for x in range(101):
    sum += x;
print(x)
#执行结果:
5050
2.2 while循环

计算100以内所有奇数之和:

sum=0
n=99 
while n>0:
    sum += n
    n -= 2
print(sum)
#执行结果;
2500

利用循环依次对list中的每个名字打印出Hello,XXX!

L = ['Bart', 'Lisa', 'Adam']
for i in L:
    print('Hello',i,'!')
#执行结果:
Hello Bart !
Hello Lisa !
Hello Adam !

三、使用dict和set

1.dict

Python内置了字典,全称dictionary,在其他语言中也称为map,使用键值(key-value)存储,具有极快的查找速度。

比如:假设要根据同学的名字查找对应的成绩,如果用list,需要两个list:

names = ['brown','marry','happy']
grade = [20,89,90]

给定一个名字,要查找对应的成绩,就要先在names中找到对应位置,再从grade中取出对应的成绩,list越长,耗时越长。

如果用dict实现,只需要一个name-grade映射表,直接根据名字查找成绩

>>> d = {'brown':95,'marry':75,'happy':98}
>>> d['marry']
#执行结果:
75
>>> d[75]
#编译报错

把数据放入dict中,除了初始化时放入,还可以通过key放入

>>> d['jack'] = 99
>>> d
#执行结果:
{'brown': 95, 'marry': 75, 'happy': 98, 'Jack': 99}

由于一个key是唯一的,所以再次放入相同的key时,后面的值会把前面的值冲掉

>>> d['jack'] = 0
>>> d
#执行结果:
{'brown': 95, 'marry': 75, 'happy': 98, 'Jack': 0}

如果key不存在会报错:

>>> d['zn']
#执行结果
Traceback (most recent call last):
  File "<pyshell#91>", line 1, in <module>
    d['zn']
KeyError: 'zn'

避免key不存在的错误,有两种方法:

1.通过in判断key是否存在

>>> 'zn' in d
False

2.通过dict提供的get方法,如果key不存在,返回None,或者自己指定的value

注意:返回None时Python的交互式命令行不显示结果。

>>> d.get('zn')
>>> d.get('zn','key不存在')
'key不存在'

删除一对数据:

>>> d.pop('brown')
95
>>> d
{'marry': 100, 'happy': 98, 'Jack': 99}

请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。

总结:

和list比较,dict 有一下特点:

  1. 查找和插入速度快
  2. 需要占用大量的内存,内存浪费多(以空间换时间)

而list相反:

1.查找和插入的时间随着元素的增加而增加

2.占用空间小,内存浪费少。

2. set

set是一组Key的集合,不存储value。由于key不能重复,所以set中没有重复的key

创建一个set需要提供一个list作为输入集合

>>> s = set([1,2,3,4,5])
>>> s
{1, 2, 3, 4, 5}

重复元素自动过滤:

>>> s = set([1,2,3,4,5,1,2,4,5])
>>> s
{1, 2, 3, 4, 5}

可以使用add()函数添加元素

>>> s.add(10)
>>> s
{1, 2, 3, 4, 5, 10}

可以通过remove(key) 删除元素

>>> s.remove(1)
>>> s
{2, 3, 4, 5, 10}

set可以看做是数学意义上的无序、不重复的数据集合,因此两个集合可以做数学意义上的交集、并集操作

>>> s1=set([1,2,3,4,5])
>>> s2 = set([1,3,5,7,8])
>>> s1 & s2
{1, 3, 5}
>>> s1 | s2
{1, 2, 3, 4, 5, 7, 8}
Python中的list(列表),tuple(元组),dict(字典)和set(集合)是常见的数据结构。 1. 列表(list)是一个可变的、有序的元素集合。可以通过方括号[]来创建一个列表,列表中的元素可以是任意类型,并且可以重复。列表提供了丰富的操作方法,如添加元素、删除元素、获取元素等。 2. 元组(tuple)是一个不可变的、有序的元素集合。可以通过小括号()来创建一个元组,元组中的元素可以是任意类型。元组一旦创建后,不能修改其元素的值。元组通常用于存储不可变的数据,如坐标位置、颜色等。 3. 字典(dict)是一种键值对(key-value)的数据结构。可以通过花括号{}来创建一个字典,字典中的元素是无序的,并且每个元素由一个键和对应的值组成。字典中的键必须是唯一的,而值可以是任意类型。字典提供了根据键获取值、添加键值对、删除键值对等操作。 4. 集合(set)是一个无序的、不重复的元素集合。可以通过花括号{}或set()函数来创建一个集合,集合中的元素不能重复。集合提供了并集、交集、差集等常用的数学运算操作,同时还支持元素的添加、删除等操作。 在编程中,根据具体的需求选择使用合适的数据结构能够更高效地处理数据,并且提供相应的操作方法方便开发。以上是对Python中常见的列表、元组、字典和集合的简要介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值