‘壹’ python中列表和元组之间有什么区别
除了元组是不可变的之外,还应有语义上的区别来指导它们的用法。元组是异构数据结构(即它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。
使用这种区别可以使代码更加明确和易于理解。
一个示例是成对的页和行号,以成对参考书中的位置,如:
my_location = (42, 11) # page number, line number
然后,可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用于存储多个位置。自然地,人们可能想在列表中添加或删除位置,因此使列表可变是有意义的。另一方面,从现有位置添加或删除项目没有意义-因此,元组是不可变的。
在某些情况下,可能想更改现有位置元组中的项目,例如在页面的各行中进行迭代时。但是元组不变性迫使您为每个新值创建一个新的位置元组。从表面上看,这似乎很不方便,但是使用这样的不可变数据是值类型和函数式编程技术的基石,它可以具有很多优点。
官方Python文档也提到了这一点
“组是不可变的,并且通常包含一个异类序列…”。
在像Haskell这样的静态类型语言中,元组中的值通常具有不同的类型,并且元组的长度必须固定。在列表中,所有值都具有相同的类型,并且长度不是固定的。因此区别非常明显。
‘贰’ python 把列表当作堆栈使用方法是什么
5.1.1. 把列表当作堆栈使用
列表方法使得列表可以很方便的做为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。例如:
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
‘叁’ Python 列表
是不是这个list让你感觉有些困扰呢,你看一下我下面的表示方式:
你的list和我的abc都是表示一个列表名。
del abc[1]:调用系统方法del,删除列表abc中索引为1的项;
abc.pop():调用列表(这里为abc)本身的方法pop(),删除abc列表的最后一项。
abc[1]中用方括号是列表的索引操作,为列表自身的规则;pop()中也可以传入参数用于表示索引位置,但此处为向方法内传入位置参数。
方法来源不一样,使用规则有差别。
‘肆’ 能不能详细解释下Python列表
一、概念
在Python中,列表(list)是常用的数据类型。列表由一系列按照特定顺序排列的项(item)组成。列表用方括号“[]”括起来,并用逗号“,”来分隔其中的项。
例如,下面的列表包含了几种用字符串表示的水果:
列表中的项和项之间的数据类型也可以不同。例如,下面的列表包含了数字和字符串:
关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。
‘伍’ Python中列表的方法有什么
Python中的列表内建了许多方法。在下文中,使用“L”代表一个列表,使用“x”代表方法的参数,以便说明列表的使用方法。
1 append()方法
列表的append()方法用于将一个项添加到列表的末尾,L.append(x)等价于L[len(L):] = [x]。
例如,使用append()方法分别将'cow'和'elephant'添加到animals列表的末尾:
>>>animals=['cat','dog','fish','dog']
>>>animals.append('cow')#等价于animals[4:]=['cow']
>>>animals
['cat','dog','fish','dog','cow']
>>>animals.append('elephant')#等价于animals[5:]=['elephant']
>>>animals
['cat','dog','fish','dog','cow','elephant']
2 ()方法
列表的()方法用于将一个项插入指定索引的前一个位置。L.(0, x)是将x插入列表的最前面,L.(len(L)), x)等价于L.append(x)。
例如,使用()方法分别将'cow'和'elephant'插入animals列表:
>>>animals=['cat','dog','fish','dog']
>>>animals.(0,'cow')
>>>animals
['cow','cat','dog','fish','dog']
>>>animals.(3,'elephant')
>>>animals
['cow','cat','dog','elephant','fish','dog']
3 extend()方法
列表的extend()方法用于将可迭代对象的所有项追加到列表中。L.extend(iterable)等价于L[len(L):] = iterable。extend()和append()方法的区别是,extend()方法会将可迭代对象“展开”。
例如,分别使用append()方法和extend()方法在animals列表后面追加一个包含'cow'和'elephant'的列表:
>>>animals=['cat','dog','fish','dog']
>>>animals.append(['cow','elephant'])#此处append()参数是一个列表
>>>animals
['cat','dog','fish','dog',['cow','elephant']]
>>>animals=['cat','dog','fish','dog']
>>>animals.extend(['cow','elephant'])#此处extend()参数也是一个列表
>>>animals
['cat','dog','fish','dog','cow','elephant']
4 remove()方法
列表的remove()方法用于移除列表中指定值的项。L.remove(x)移除列表中第一个值为x的项。如果没有值为x的项,那么会抛出ValueError异常。
例如,使用remove()方法移除animals列表中值为'dog'的项:
>>>animals=['cat','dog','fish','dog']
>>>animals.remove('dog')
>>>animals
['cat','fish','dog']
>>>animals.remove('dog')
>>>animals
['cat','fish']
>>>animals.remove('dog')
Traceback(mostrecentcalllast):
File"",line1,in
ValueError:list.remove(x):xnotinlist
5 pop()方法
列表的pop()方法用于移除列表中指定位置的项,并返回它。如果没有指定位置,那么L.pop()移除并返回列表的最后一项。
例如,使用pop()方法移除animals列表中指定位置的项:
>>>animals=['cat','dog','fish','dog']
>>>animals.pop()
'dog'
>>>animals
['cat','dog','fish']
>>>animals.pop(2)
'fish'
>>>animals
['cat','dog']
在调用前面的列表方法后,并没有打印任何值,而pop()方法打印了“弹出”的值。包括append()、()、pop()在内的方法都是“原地操作”。原地操作(又称为就地操作)的方法只是修改了列表本身,并不返回修改后的列表。
在类型转换时使用的int()函数,str()函数都有返回值:
>>>number=123
>>>mystring=str(number)#将返回值赋给变量mystring
>>>mystring
'123'
但是在使用“原地操作”时,大部分则不会有返回值,包括pop()方法也只是返回了被“弹出”的值,并没有返回修改后的列表:
>>>animals=['cat','dog','fish','dog']
>>>new_animals=animals.append('cow')
>>>print(new_animals)
None
关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。
‘陆’ python 把列表当作队列使用方法
5.1.2. 把列表当作队列使用
你也可以把列表当作队列使用,队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢(因为,为了一个元素,要移动整个列表中的所有元素)。
要实现队列,使用 collections.deque,它为在首尾两端快速插入和删除而设计。例如:
>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry") # Terry arrives
>>> queue.append("Graham") # Graham arrives
>>> queue.popleft() # The first to arrive now leaves
'Eric'
>>> queue.popleft() # The second to arrive now leaves
'John'
>>> queue # Remaining queue in order of arrival
deque(['Michael', 'Terry', 'Graham'])
‘柒’ 关于Python列表的常用操作你会多少
只要把逗号分隔的不同的数据项使用方括号括起来即可
List = ['wade','james','bosh','haslem']
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等!
‘捌’ python 列表操作
list1=[1,2,3,4,5,6,6,6,7,8,9]
newlist=[Trueifi>3andi<5elseFalseforiinlist1]
‘玖’ Python列表
#Python3.6
deflist_action():
#用单个大写字母表示省:A,B,C,...
#用省的大写字母开头的两个大写字母表示该省的市:AA,AB,AC,BA,CA,...
sheng=["A","B","C"]
shi=["AA","AB","AC","AD",
"BA","BB","BC","BD",
"CA","CB","CC","CD"]
#查询
deflocate_SS(sn,si):
status=[False,False]
try:
sheng.index(sn)
exceptValueError:
print("{}省市不在列表中。".format(sn))
returnstatus
else:
status[0]=True
try:
shi.index(si)
exceptValueError:
print("{}省在列表中,但{}市不在列表中。".format(sn,si))
returnstatus
else:
status[1]=True
print("{}省和{}市已经在列表中。".format(sn,si))
returnstatus
definsert_SS(sn,si):
st=locate_SS(sn,si)
ifst[0]isFalseandst[1]isFalse:
sheng.append(sn)
shi.append(si)
print("成功插入{}省,{}市。".format(sn,si))
elifst[0]andst[1]isFalse:
shi.append(si)
print("成功插入{}市。".format(si))
defdelete_SS(sn,si):
st=locate_SS(sn,si)
ifst[0]andst[1]:
shi.remove(si)
print("成功删除{}市。".format(si))
foriteminshi:
ifitem.startswith(sn):
return
sheng.remove(sn)
print("城市列表中已无{0}省的城市,删除{0}省。".format(sn))
else:
print("删除失败,输入城市错误。")
while(True):
print("输入操作如下:")
print("输入:省份城市名查询,查询省份城市")
print("输入:省份城市名添加,添加省份城市")
print("输入:省份城市名删除,删除省份城市")
print("输入:退出,退出。")
commond=input()
commond_list=commond.split()
iflen(commond_list)==1andcommond_list[0]=="退出":
exit()
eliflen(commond_list)==3:
sheng_,shi_,cmd=commond_list
ifcmd=="查询":
locate_SS(sheng_,shi_)
elifcmd=="添加":
insert_SS(sheng_,shi_)
elifcmd=="删除":
delete_SS(sheng_,shi_)
else:
print("输入操作有误,请重新输入。")
else:
print("输入操作有误,请重新输入。")
print()
if__name__=="__main__":
list_action()
‘拾’ Python中最常用的操作列表的几种方法归纳
这里介绍几个常用的列表操作:
1、添加元素
添加元素使用列表的内置方法append
number = [1, 2, 3, 4]
number.append(5) # number = [1, 2, 3, 4, 5]
number.append([6,7]) # number = [1, 2, 3, 4, 5, [6, 7]]
number.append({'a':'b'}) # number = [1, 2, 3, 4, [6, 7], {'a', :'b'}
可以看到强大的python列表可以嵌套任意类型
2、列表相加
要想连接两个列表,可以使用+号连接
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b # c = [1, 2, 3, 4, 5, 6]
也可以使用列表内置方法extend连接两个列表
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b) # a = [1, 2, 3, 4, 5, 6]
用+号会创建一个新通对象,使用extend则在原来的对象上面修改
3、列表去重复
列表本身没有去除重复的功能,但是可以借助python的另外一个类型set(help(set)查看)
a = [1, 2, 3, 3,2, 1]
b = list(set(a)) # b = [1, 2, 3]
也可以借助字典类型的内置方法
a = [1, 2, 2, 3, 1, 3]
b = {}.fromkeys(a).keys() # b = [1, 2, 3]