学一门程序语言,你得清楚这个这个程序是怎么存储数据得把,你只有了解了它得存储结构,才能进行更深刻得数据处理把,下面我来讲讲我在学得过程中Python 得三种数据处理中会用到得存储结构
Python 也提供了几种不同的存储结构来存储我们的数据,它们分别是 :元组,列表和字典
下面我们先从元组讲起,目录如下:
目录
Q1:一般我们学编程常常会遇到很多字符串,但是有的时候字符串的规模过于庞大的时候,我们想要查找我们需要的数据的时候,又不知道如何处理时,这个时候要怎么 办的呢?
Q2:我们之前可以用简单的判断结构,来通过输入一个(1—7)之间的任意数字,然后输出对应的星期几,程序实现如下:
Q3:我们知道了元组是Python中的一种数据结构,它可以存储不同的数据类型,比如数字,还有字符等等,但是我们能不能对元组中的数据整体进行操作呢?
Q4: 但是这样有时候得到的并不是我们想要的数据,于是就有了切片的操作
Q6: 有一点值得提醒,Python中元组中的数据是不可改变!!!
Q1:一般我们学编程常常会遇到很多字符串,但是有的时候字符串的规模过于庞大的时候,我们想要查找我们需要的数据的时候,又不知道如何处理时,这个时候要怎么 办的呢?(用元组存放数据)
这个时候需要我们找一个容器来存放这些数据,所以 元组就是这样的存储容器,下面我们看看如何定义一个元组
先看下面的程序,这样我们就定义好了一个元组
tuple = (10,200)
元组是 Python 中特有的,和大多数编程语言一样,元组也可以类比 C 语言中的数组,元组的第一个元素是从0开始的,也就是代表第一个元素,我们来看看交互式模式中看看这个程序
元组不仅支持数字, 还支持字符串的输入呢!
mytuple = (10,"awesome")
print(mytuple[0])
print(mytuple[1])
相必你也猜到了,程序会分别输出 10 和 awesome,但是问题来了
Q2:我们之前可以用简单的判断结构,来通过输入一个(1—7)之间的任意数字,然后输出对应的星期几,程序实现如下:
day1 = 'Monday'
day2 = 'Tuesday'
day3 = 'Wednesday'
day4 = 'Thursday'
day5 = 'Friday'
day6 = 'Saturday'
day7 = 'Sunday'
x = int(input('Please input a number:'))
if x == 1:
print(day1)
elif x==2:
print(day2)
elif x==3:
print(day3)
elif x == 4:
print(day4)
程序运行结果如下:
但是这么长的代码显然看起来有些冗余,还会占用大量的资源,不符合我们写程序要求的代码保持简洁
所以,这个时候元组就能发挥它的作用了,我们用一个元组放入我们一周中的七天,然后输入其中的一天,然后再用输出函数打印就可以了
days = ('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')
x = int(input('please input a number:'))
print(days[x-1])#没忘记吧,元组是从0开始的
这里程序的运行结果和 上面是一样的,这就是元组的 魔力
Q3:我们知道了元组是Python中的一种数据结构,它可以存储不同的数据类型,比如数字,还有字符等等,但是我们能不能对元组中的数据整体进行操作呢?
我们可以用print函数打印出元组中的所有元素,还可以用循环打印出每单个元素
mytuple = (1,'Hello','达瓦达瓦')
print(mytuple)
for x in mytuple:#将元组中的每一个数据遍历一遍,在打印下来,也就是用for循环来使用元组中的数据
print(x)
程序运行结果
Q4: 但是这样有时候得到的并不是我们想要的数据,于是就有了切片的操作
方法一
mytuple = (1,122,32,3434,444,1000,4443,9000)
for x in mytuple[0:3]:#不打印第三个元素,方括号中前一个数字代表开始的,第二个代表结束的数字
print(x)
方法二
for i in mytuple[:3]: #告诉编辑器只显示前三个元素
print(i)
这两种操作是等价的,运行结果
这里还有一点,如果我们想要直接打印最后一个元素
#这样直接打印前面我们定义的元组中的最后一个数
print(mytuple[-1])
这里还有另一种切片的操作
mytuple = (1,122,32,3434,444,1000,4443,9000)
for t in mytuple[3:]: #这次的循环是跳过前三个元素,直接打印后面的元素
print(t)
运行结果
Q5:切片处理了这么多数字,那切片还能不能处理字符串呢?
答案是可以的,看下面的程序
mytuple1 = 'Python is totally awesome!'
for i in mytuple1[::2]:
print(i)
这里我们给切片增加了第三个参数,它的实际作用是每次循环遍历元素的时候,跳过两个元素
下面是程序的运行结果
Q6: 有一点值得提醒,Python中元组中的数据是不可改变!!!
我们先看看这个程序
mytuple3 = (3,2,'222')
mytuple3[0] = 24
这个时候程序会报错
这个时候编辑器告诉我们,tuple(元组),不支持这个任务,也就是指给元组中的数据赋值。
所以使用Python中的数据结构进行存储数据的时候,要明确区分:元组,列表,字典的工作方式
Q7:用元组来读取函数中得多个返回值
定义函数my_func 有多个返回值,然后我们就可以将这些数值存储到,我们定义得元组(mytuple)当中,然后就可以打印我们需要得函数返回值了!
def my_func():
return (11,22,33,44,55,66)
mytuple = my_func()
print(mytuple[0])
print(mytuple[1]) #访问特定位置的元素
print(mytuple) #直接访问返回的所有值
程序运行结果
Sum:总结
Python中的元组支持我们进行存储不同的类型,在 读取数据的过程中,我们需要用到切片的操作,切片的位置可以放三个值,第一个放起始元素的值,中间的放结束元素的位置,最后一个位置一般在循环中使用,它的作用是在每次循环之后跳过多少个元素,元组的作用远不止这些,看它还可以去存储含有多个返回值的函数