Python入门(三)——list和tuple,条件判断和循环,dict和set

简介: Python入门(三)——list和tuple,条件判断和循环,dict和set好的,我们继续来学习python,这次我们讲容器,也就是list,我们可以这样表示一.liststudent = ["zhangsan", "lisi", "wangwu"]pri...

Python入门(三)——list和tuple,条件判断和循环,dict和set


好的,我们继续来学习python,这次我们讲容器,也就是list,我们可以这样表示

一.list

student = ["zhangsan", "lisi", "wangwu"]

print student

print "长度为:",len(student)

这样我们可以看下输出的内容

这里写图片描述

我们可以看到打印的内容,以及他的长度是3,也就是有三个子集,python中的list和java中的数组回去内容是一样的,但是他可以索引,以及可以随时的增加或者删除,我么可以看下

student = ["zhangsan", "lisi", "wangwu"]

print student[0]
print student[1]
print student[2]
print student[3]

从这个的表现手法,我们可以看出,list也是从0开始的,那这个下标3应该是不存在的,如果在Java中会报数组越界,那python尼?我们来看下

这里写图片描述

从输出的结果可以看出,他报了一个IndexError的错误,类似于数组越界

在python中,如果你想获取最后一个元素,你有两种办法,我们来看下

print student[len(student) - 1]

print student[-1]

我们可以长度-1,或者直接-1都是可以的,而且我们上面说过,list是可以增加,删除的,那我们来看下

student.append("liliu")

print student

这就是增加的操作,我们输出

这里写图片描述

可以看出,我们每一次增加默认都会在末尾,当然,他是一个灵活的容器,我们完全可以利用索引来插入

student.insert(1,"liliu")

print student

这句话的意思是我将这个元素插入在1的位置,索引输出的内容

这里写图片描述

既然如此,那我们还有删除,删除我们还是直接来看一段代码

student.insert(1, "liliu")

# 删除末尾
student.pop()

# 删除第一个
student.pop(0)

print student

从这段代码我们可以看出,删除最后一个可以直接调用函数pop,如果需要指定删除就添加索引就好了,这个还是比较好理解的

如果你想替换某一个元素,那就直接赋值就好了

student[0] = "Hello"

print student

这样第一个元素就替换了

这些和Java好像没什么不同。我们来看下不同,在python中,list可以可以放不同的数据类型哦,比如:

test = ["zhangsan", 1, 22, True, ["lisi", 123, 88, False]]

print test

可以发现,很神奇,因为里面可以包含很多的元素,连list都可以包含,如果你想去取list里面的list,我们可以这样那

print test[4][0]

这样就能拿到李四了

二.tuple

tuple和list很相似,但是他一旦确定了元素之后就不能变化了。所有这个才跟Java的数组很像才对。他也没有什么增加,删除的函数,因为他不变,所以安全性高

tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

test = (1, 2, 3)

print test

如果你想定义一个空的tuple,那么只要这样

test = ()

print test

而且我们可以定义tuple的元素

test = (5,)

print test

这里加个逗号是为了区分元素和长度,如果去掉这个逗号,我们会表示这是一个元素,这个元素是5

如果想让他可变的话,只要他的元素是list就好了

t = ('a', 'b', ['A', 'B'])

t[2][0] = "x"

t[2][1] = "y"

print t

其实他还是不变的,只是list变了而已

三.条件判断

条件判断,我们先来看下if语句

if age > 20:
    print "成年人"
else:
    print "未成年人"

好的,这段代码很简单,输出未成年人,但是如果现在有多个判断条件尼?

age = 38

if 50 > age > 20:
    print "中年人"
elif age <= 18:
    print "青少年"
elif age > 50:
    print "老年人"
else:
    print "儿童"

我们也是可以的,他的原则是

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

四.循环

Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来,看例子:

names = ["张三", "李四", "王五"]

for name in names:
    print name

这样就可以全部遍历出来了

所以for x in …循环就是把每个元素代入变量x,然后执行缩进块的语句。

再比如我们想计算1-10的整数之和,可以用一个sum变量做累加:

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print sum

这样我们就可以输出总和55了

如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,比如range(5)生成的序列是从0开始小于5的整数,也就是0-4,那我们现在算100的话,应该是range(101)

sum = 0
for x in range(101):
    sum = sum + x
print sum

这样我们就可以输出总和为5050

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print sum

这样就可以算出为2500

而一般的计算题都会结合输入来做一些处理的,比如

birthday = raw_input("请输入你的生日:\n")
if birthday > 2000:
    print "00后"
else:
    print "你不是老司机"

你们猜猜我输入1995会输出什么
这里写图片描述

是不是很奇怪,为什么会是输出00后,1995小于2000应该是输出你不是老司机呀

我们先来查下原因,我们加个打印

birthday = raw_input("请输入你的生日:\n")

print birthday
print birthday > 2000

if birthday > 2000:
    print "00后"
else:
    print "你不是老司机"

再来看下输出

这里写图片描述

你会发现他返回True,这是为什么尼?其实仔细想想,这个1995他其实是个字符串,因为我们raw_inpt输入的都是字符串,如果想整数计算,我们需要强转一下,比如这样

birthday = int(raw_input("请输入你的生日:\n"))

print birthday
print birthday > 2000

if birthday > 2000:
    print "00后"
else:
    print "你不是老司机"

这样就搞定了

五.dict

dict是词典的意思,但是在其他语言中,一般是map,因为是以键值对的形式成立的,我们来看下他的写法,用学生和分数来做:

d = {"张三": 59, "李四": 100, "王五": 88}

#我想知道李四的分数
print d["李四"]

键值对是以大括号的形式,如果想索引,就需要用他的key

当然,dict也是可以更改的,比如

d = {"zhangsan": 59, "lisi": 100, "wangwu": 88}

d["lisi"] = 50

print d

这样,我们看输出

这里写图片描述

你没有看错,李四的分数改了,如果不存在key ,那么会报错的KeyError,为了避免,我们可以用in去判断是否存在这个key

print "Hello" in d

他返回的就是一个布尔值

dict还提供了get方法供我们查询

print d.get("zhangsan")

要删除一个key,只需要调用pop(key)就好了

和list比较,dict有以下几个特点:

  • 查找和插入的速度极快,不会随着key的增加而增加;
  • 需要占用大量的内存,内存浪费多。

而list相反:

  • 查找和插入的时间随着元素的增加而增加;
  • 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

六.set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

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

s = set([1,2,3])

print s

这里要注意一下,我们传入的是一个list,但是输出的,就不是一个list了,而是有1,2,3这三个元素

而且set有自动过滤的功能,我们来看下

s = set([1,2,3,2,3,3,3,5,2])

print s

这里的输出很有意思

这里写图片描述

可以看到,重复的元素都过滤掉了,也就是说set不允许有重复的key,set是支持增加和删除的

  • add(key)
  • remove(key)

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作,这也就是他所做的事情

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
set([2, 3])
>>> s1 | s2
set([1, 2, 3, 4])

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。

最后来说一下一些小知识,比如list的排序

a = ["a", "c", "b"]

a.sort()

b = [1, 2, 3]

b.sort()

print a

print b

来看下他们的输出就好了

这里写图片描述

好了,python今天的基础就到这里了,可以发现我们把最基础的都差不多学会了,我们下一篇就开始了解函数了

目录
相关文章
|
24天前
|
缓存 算法 数据处理
Python入门:9.递归函数和高阶函数
在 Python 编程中,函数是核心组成部分之一。递归函数和高阶函数是 Python 中两个非常重要的特性。递归函数帮助我们以更直观的方式处理重复性问题,而高阶函数通过函数作为参数或返回值,为代码增添了极大的灵活性和优雅性。无论是实现复杂的算法还是处理数据流,这些工具都在开发者的工具箱中扮演着重要角色。本文将从概念入手,逐步带你掌握递归函数、匿名函数(lambda)以及高阶函数的核心要领和应用技巧。
Python入门:9.递归函数和高阶函数
|
24天前
|
程序员 UED Python
Python入门:3.Python的输入和输出格式化
在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。
Python入门:3.Python的输入和输出格式化
|
24天前
|
机器学习/深度学习 人工智能 算法框架/工具
Python入门:1.Python介绍
Python是一种功能强大、易于学习和运行的解释型高级语言。由**Guido van Rossum**于1991年创建,Python以其简洁、易读和十分工程化的设计而带来了庞大的用户群体和丰富的应用场景。这个语言在全球范围内都被认为是**创新和效率的重要工具**。
Python入门:1.Python介绍
|
3月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
24天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
24天前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
24天前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
24天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
10天前
|
数据采集 人工智能 数据挖掘
Python 编程基础与实战:从入门到精通
本文介绍Python编程语言,涵盖基础语法、进阶特性及实战项目。从变量、数据类型、运算符、控制结构到函数、列表、字典等基础知识,再到列表推导式、生成器、装饰器和面向对象编程等高级特性,逐步深入。同时,通过简单计算器和Web爬虫两个实战项目,帮助读者掌握Python的应用技巧。最后,提供进一步学习资源,助你在Python编程领域不断进步。
|
24天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。

热门文章

最新文章