一天快速入门Python语法基础之操作列表

一、列表简介

列表由一系列按特定顺序排列的元素组成。

二、访问列表元素

和大多数编程语言一样列表元素索引是从0开始的.
python为访问最后一个元素提供了一个特殊的语法,将索引指定为-1,访问倒数第二个指定为-2
languages=['java','python2','c','c++','perl','js']
print(languages[0])
print(languages[3])

<<java
<<c++

三、修改

languages=['java','python2','c','c++','perl','js']
print(languages)
languages[1]='python3'
print(languages)


 <<['java', 'python2', 'c', 'c++', 'perl', 'js']
 <<['java', 'python3', 'c', 'c++', 'perl', 'js']

四、添加

#在尾部添加
languages=['ruby']
print(languages)
languages.append('python')
languages.append('java')
languages.append('c++')
print(languages)

<<['ruby']
<<['ruby', 'python', 'java', 'c++']

#在列表中插入元素
languages=['java','python','c''c++']
print(languages)
languages.insert(0,'js')#在索引0处插入js,这种操作使列表中每个元素右移一个位置
print(languages)

<<['java', 'python', 'cc++']
<<['js', 'java', 'python', 'cc++']

五、删除

#使用del语句删除元素
languages=['java','python2','c','c++','perl','js']
print(languages)
del languages[0] #删除索引0位置的元素
print(languages)

#使用方法pop()删除元素
#pop()可删除列表末尾的元素,并让你能接着使用它,列表就像一个栈,删除列表末尾元素相当于弹出栈顶元素
languages=['java','python2','c','c++','perl','js']
poped_laguages=languages.pop()
print(languages)
print(poped_laguages)

#弹出列表中任意位置的元素
languages=['java','python2','c','c++','perl','js']
poped_first=languages.pop(0)
print(languages)
print(poped_first)
#使用del和pop的区别,del删除后不在使用,pop从列表中删除后还能继续使用这个元素

#根据值删除元素,不知道要删除的值再列表什么位置,如果只知道要删除元素的值,可用remove()方法
languages=['java','python2','c','c++','perl','js']
print(languages)
languages.remove('java')
print(languages)
#remove只删除第一个指定的值,若要删除的值再列表中多次出现,就需循环判断是否删除了所有这样的值

六、使用sort()方法对列表进行永久性排序

#按字母顺序排序
languages=['java','python2','c','c++','perl','js']
languages.sort()
print(languages)
#按字母反向排序
languages.sort(reverse=True)
print(languages)
#sort()永久性修改了列表元素的顺序,无法恢复到原来的排列顺序

七、使用函数sorted()对列表进行临时排序

#要保留列表元素原来的排列顺序,同时以特定的顺序呈现他们,可使用函数sorted()
languages=['java','python2','c','c++','perl','js']
print(sorted(languages))
print(languages)
#如要反向排序,也可以使用传递参数reverse=True
print(sorted(languages,reverse=True))

八、倒着打印列表

# reverse()方法,不是按字母顺序反序排列,而是反转列表元素的排列顺序
languages=['java','python2','c','c++','perl','js']
languages.reverse()
print(languages)
#reverse()方法永久性修改列表元素排序顺序,但可随时恢复,只需再次调用reverse()方法

九、确定列表长度,函数len()

languages=['java','python','c','c++','perl','js']
print(len(languages))

十、操作列表

#一、遍历列表
languages=['java','python','c','c++','perl','js']
for language in languages:
    print(language)
#language是指列表中的一个元素,languages是列表。对列表中的每一个元素都将执行循环指定的步骤

#2.避免缩进错误
#对于位于for语句后面且属于循环组成部分的代码行,一定要缩进
languages=['java','python','c','c++','perl','js']
for language in languages:
    print("I Like language:"+language.title())#有缩进,执行for循环对每个元素进行输出
print("The Best languages:"+language.title()) #没缩进,只会输出language的终值js
#不必要的缩进:对于不属于前一行代码的代码无需缩进,对于应在for循环结束后才执行的代码无需缩进
#避免遗漏for语句末尾 : (冒号),它告诉下一行是循环的第一行

#二、创建数值列表
#1.使用函数range(),用来让你轻松获得一系列数字
for value in range(1,5):
    print(value)
#在这个例子中range()只是打印数字1~4,因为Python从你指定的第一个数值1开始,在到达你指定的第二个值5后停止,输出不包含第二个值

#2.使用range()创建数字列表
#可用list()函数和range函数,将range()作为list()的参数,将输出一个数字列表
numbers=list(range(1,8))
print(numbers)
#使用range()时还可指定步长
even_numbers=list(range(1,11,2)) #指定1~11,从1开始数,每次不断加2,直到超过终值11
print(even_numbers)

#创建一个列表,其中包含1~10个整数的平方
squares=[ ]
for value in range(1,11):
    square=value**2
    squares.append(square)
print(squares)
#首先我们创建了一个空列表,接下来使用函数range()让Python遍历1到10的值,再循环中,计算当前值的平方,
#并将结果存储到变量square中,然后将新计算到的平方值添加到列表squares末尾,最后循环结束打印列表squares

#3.对数字列表执行简单的统计计算
digits=[1,2,3,4,5,6,7,8,9]
print(min(digits))
print(max(digits))
print(sum(digits))

#4.列表解析
#前面介绍的生成列表的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表
#举个之前生成平方数列表 的例子
squares=[value**2 for value in range(1,11)]
print(squares)

#四、使用列表的一部分
#之前学了如何操作单个列表元素,这里将介绍怎么处理列表的部分元素
#1.切片:处理列表的部分元素
#要创建切片,可指定要使用的第一个元素和最后一个元素的索引
languages=['java','python','c','c++','perl','js']
print(languages[1:3])#输出 1 2索引的二个元素

#如果没有指定第一个索引,则自动从列表开头开始
print(languages[:3]) #输出0 1 2索引的三个元素

#要让切片终值于列表末尾,也可使用类似语法
print(languages[3:]) #输出包括索引3及其之后的所有元素

#2.遍历切片
#如果要遍历列表的部分元素,可在for循环中使用切片。
languages=['java','python','c','c++','perl','js']
for language in languages[:3]:
    print(language.title())  #没有遍历整个列表,而是只遍历列表中的前三个元素
#可用于web分页
#3.复制列表
#要复制整个列表,可创建一个包含整个列表的切片,方法是省略起始索引和终值索引[ : ]
languages=['java','python','c','c++','perl','js']
copy_languages=languages[:]
print(languages)
print(copy_languages)
#为核实我们确有两个列表,下来在每个列表中各添加一个元素
languages.append('swift')
copy_languages.append('R')
print(languages)
print(copy_languages)
#复制后会得到两个列表, 而对于copy_languages=languages 这段代码只是简单的赋值

#五、元组
#列表适合用于动态的数据集合,列表可动态的修改,对于网站的用户列表显示至关重要
#而元组则是不可变的的列表
#1.定义元组
#元组使用的是圆括号而不是方括号,定义元组后,可用索引访问其元素
groups=(12,33,44,55)
print(groups[0])
print(groups[2])
#如果企图修改元组值,会导致报错,如groups[0]=22

#2.遍历元组中的所有值
groups=(12,33,44,55)
for group in groups:
    print(group)
#返回元组中每一个元素

#3.修改元组变量
#虽然不能修改元组中的值,但可以给存储元组的变量赋值
groups=(12,33,44,55)
for group in groups:
    print(group)
groups=(1,2,3,4)
for group in groups:
    print(group)
#首先定义了个元组并将结果打印,接下来将一个新元组存到了groups变量中然后打印新的,元组变量赋值是合法的

参考:Python编程:从入门到实践》,作者Eric Matthes,译者袁国忠,由人民邮电出版社于2016年7月出版

posted @ 2018-03-18 02:18  锅锅7533  阅读(318)  评论(0编辑  收藏  举报