大一新生寒假自学Python(三)

寒假自学python第三章,今天将继续分享python学习日常,今天将把列表系列完成,将引入新内容元组并将两者进行一个异同比较,希望各位大佬知无不言言无不尽

列表的生成式的使用

列表生成式的语法结构为lst=[expression for item in range]和lst[expression for item in range if condition]后者在使用过程中可添加条件对生成的元素进行筛选。注:在代码使用过程中我们将用到random函数(即生成某范围的随机数)

import random
lst=[item for item in range(1,11)]
print(lst)
#也可对item进行操作是其变成我们所需的元素
lst=[item*item for item in range(1,11)]
print(lst)

lst=[random.randint(1,100) for _ in range(1,11)]
print(lst)
#在列表中筛选符合条件的数
lst=[i for i in range(1,11) if i%2==0]
print(lst)
运行结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[12, 46, 75, 47, 92, 39, 25, 24, 95, 82]
[2, 4, 6, 8, 10]

二维列表的创建和生成公式及遍历

创建二维列表可与C语言中的二维数组进行比较,python中的二维列表同要需要两层for循环来遍历和输出,第一层循环为行,第二层为列,请看代码实现

lst=[
    ['城市','环比','同比'],
    ['北京',123,234],
    ['上海',134,123],
    ['深圳',123,123]
]
for row in lst:#行
    for item in row:#列
        print(item,end='\t')
    print()#换行
#二维列表的生成公式即四行五列
lst2=[ [j for j in range(5)]for i in range(4)]
print(lst2)
运行结果
城市	环比	同比	
北京	123	234	
上海	134	123	
深圳	123	123	
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]

元组的创建与删除

创建元组有两种方案一是通过小括号;二是使用函数tuple进行创建,且可以通过以前学习过的函数对元组进行一系列操作

#使用小括号创建元组
s=('hello',[123,123,123],'python','world')
print(s)
#使用内置函数tuple()创建元组
t=tuple('helloworld')
print(t)

t=tuple([1,2,3,4,5,6,7,8,9])
print(t)
print('10是否在元组中',(10 in t))
print('10不是在元组中',(10 not in t))
print('元组中最大值',max(t))
print('元组最小值',min(t))
print('元素最大值的下标',t.index(max(t)))
print('元素最大值的个数',t.count(max(t)))
运行结果
('hello', [123, 123, 123], 'python', 'world')
('h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd')
(1, 2, 3, 4, 5, 6, 7, 8, 9)
10是否在元组中 False
10不是在元组中 True
元组中最大值 9
元组最小值 1
元素最大值的下标 8
元素最大值的个数 1

此外当元组中只含有一个元素时需要注意不要删除括号中的逗号,要判断是否为元组可使用type函数进行判断;删除元组使用del进行操作

#如果元组只有一个元素
#错误示范
y=(10)
print(y,type(y))
#元组有一个元素逗号不能省略
#正确范例
t=(10,)
print(t,type(t))
#元组的删除
del  t
运行结果
10 <class 'int'>
(10,) <class 'tuple'>

元组的遍历与访问

元组的遍历和访问有三种方式

分别是:根据索引;for循环;和enumerate函数(且使用enumerate函数时可自定义开始时的索引)

t=('python','hello','world')
#根据索引访问原则
print(t[0])
t1=t[0:3:2]
print(t1,t[0:3:2])

#遍历元组的操作
for item in  t:
    print(item)
#for+range()+len()
for i in range(len(t)):
    print(i,t[i])
#使用enumer函数
for index,item in enumerate(t):
    print(index,'-------->',item)
#自行设定开始索引
for index,item in enumerate(t,start=10):
    print(index,'-------->',item)
运行结果
python
('python', 'world') ('python', 'world')
python
hello
world
0 python
1 hello
2 world
0 --------> python
1 --------> hello
2 --------> world
10 --------> python
11 --------> hello
12 --------> world

元组的生成式

使用for循环生成的元组需要使用函数tuple()否则会出现错误;输出时可使用tuple函数或者__next__()函数但后者一次只能输出一个元素;元组输出一次后再次输出只能输出括号

t=(i for  i in range(4))
print(t)
#在使用元组生成式后输出时需要借助tuple函数否则会出现下面的错误
#<generator object <genexpr> at 0x0000028DA31C5900>
t=tuple(t)
print(t)
#输出时也可借用__next__()函数进行输出但一次只能输出一个元素
t1=(i for i in range(1,4))
print(t1.__next__())
print(t1.__next__())
print(t1.__next__())
#一个数组输出一次后再次输出只能输出一个括号
t2=tuple(t1)
print(t2)
#输出结果为()
输出结果
<generator object <genexpr> at 0x0000025BD1665900>
(0, 1, 2, 3)
1
2
3
()

列表和元组的异同点

如下图

 图中所写的字典将在下一篇中讲解

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值