首页 >> 大全

python入门速通基础

2023-10-21 大全 25 作者:考证青年

介绍

本文将介绍常用函数,语法,对象类型等等

这一文章是本人做题中遇到的难点和总结,一部分源于网上,一部分自己写的。若有错误,谢谢指出。

一些基础知识来源于链接: 菜鸟

列表(List)

序列是 p y t h o n 中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置或称索引,第一个索引是 0 0 0,第二个索引是 1 1 1,以此类推。

列表是最常见的 p y t h o n 数据类型,它可以作为一个方括号内的逗号分隔值出现

列表可以相当c++中的队列和栈的功能,适用性非常强。

列表的数据项不需要具有相同的类型。

创建一个列表,只要把逗号分割的不同的数据项使用方括号括起来即可。

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

访问列表中的值

使用下标索引来访问列表中的值,同样的你也可以是同方括号的形式截取字符

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
# result
list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]

更新列表

你可以对列表的数据项进行修改或更新,你也可以使用()方法来添加列表项。

list = []          ## 空列表
list.append('Google')   ## 使用 append() 添加元素
list.append('Runoob')
print list
# result
['Google', 'Runoob']

删除列表元素

可以使用 d e l del del语句来删除列表的元素

list1 = ['physics', 'chemistry', 1997, 2000]print list1
del list1[2]
print "After deleting value at index 2 : "
print list1
# result
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

p y t h o n 列表脚本操作

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

list1 = []
for i in range(5):list1.append(i)
print(list1)
list2 = [5,6,7,8,9]list3 = list1 + list2
list4 = list3 *2
print(list3)
print(list4)
# result
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list1 = [1,2,3]
print(len(list1))
print(3 in  list1)for i  in list1:print(i,end=' ')
# result
3
True
1 2 3 

元组(tuple)

p y t h o n 的元组与列表类似,不同之处在于元组不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号内添加元素,并使用逗号隔开即可。

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"

tup1 = ()

tup1 = (50,)

元组与字符串类似,下标索引从 0 0 0开始,可以进行截取,组合等

访问元组

元组可以使用下标索引来访问元组中的值。

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
# 运行结果
tup1[0]:  physics
tup2[1:5]:  (2, 3, 4, 5)

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')# 以下修改元组元素操作是非法的。
# tup1[0] = 100# 创建一个新的元组
tup3 = tup1 + tup2
print tup3
# result
(12, 34.56, 'abc', 'xyz')

删除元组

元组中的元素值是不允许删除的,但我们可以使用 d e l del del语句来删除整个元组。

tup = ('physics', 'chemistry', 1997, 2000)print tup
del tup
print "After deleting tup : "
print tup
# result
NameError: name 'tup' is not defined #tup删除后不存在

元组运算符

与字符串一样,元组之间可以使用 + + +号和 ∗ * ∗号进行运算,这就意味着他们可以组合和赋值,运算后会生成一个新的元组。

a = (1,2,3) + (4,5,6)
b = ('132',)*3
# 这里注意如果写成('123')*3的运行出来的result是132132132
length = len(a)print(a)
print(b)
print(length)
# result
(1, 2, 3, 4, 5, 6)
('132', '132', '132')
6

_in_运算符判断是否在元组中,是的话返回True,否则返回False

_for in_运算符用来遍历元组中所有元素

a = (1,2,3)
s = list(i for i in a)print ( 3 in a)
print(s)
# result
True
[1, 2, 3]

元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中某一段元素

L = ('spam', 'Spam', 'SPAM!')print(L[2])
print(L[-1])
print(L[1:])
#result
SPAM!
SPAM!
('Spam', 'SPAM!')

任何无符号的对象,以逗号隔开,默认为元组

a = 1,2,3,4,5
print(type(a))
# result
<class 'tuple'>

字典

字典是一种可变容器模型,且课存储任意类型对象

字典的每一个键值key:value对(key为键,value为值)用冒号:隔开,每个键值对之间用逗号,号分割,整个字典包括在花括号{}中,格式如下:

d = {key1 : value1, key2 : value2 }

注意:dict作为 p y t h o n 中的关键字和内置函数,变量名不建议命名为 d i c t dict dict(可命名为dict1,dict2等等)

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

zd = {'a': 1 , 'b':2 , 'b':3
}
print(zd['b'])
print(zd)
# 运行结果
3
{'a': 1, 'b': 3}

值可以去任何数据类型,但键必须是不可变得,如字符串,数组,元组。

一个简单例子:

tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可以这样创建:

tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }

访问键对应的值:

tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}print "tinydict['Name']: ", tinydict['Name']
print "tinydict['Age']: ", tinydict['Age']

如果字典中不存在要访问的值就会报出:

修改字典

tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}tinydict['Age'] = 8 # 更新
tinydict['School'] = "RUNOOB" # 添加print "tinydict['Age']: ", tinydict['Age']
print "tinydict['School']: ", tinydict['School']

能删单一的元素也能清空字典,清空只需一项操作。

tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}del tinydict['Name']  # 删除键是'Name'的键值对
tinydict.clear()      # 清空字典所有条目
del tinydict          # 删除字典print(tinydict['Name']) # 由于不存在键值对,会报出KeyError
print "tinydict['Age']: ", tinydict['Age'] 
print "tinydict['School']: ", tinydict['School']

字典键的特性

字典值可以没有限制地取任何 p y t h o n 对象,既可以是标准地对象,也可以是用户定义的,但键不行

tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'} print "tinydict['Name']: ", tinydict['Name']
# 运行结果
tinydict['Name']:  Manni

inydict = {['Name']: 'Zara', 'Age': 7} print "tinydict['Name']: ", tinydict['Name']
# 运行结果
TypeError: unhashable type: 'list'

try-语句块 海象运算符 列表推导式 List的常用函数

简单的函数有:

接下的函数最好单独一行,不要出现print(list.())这样的语句,会打印出None,而不是所期望的值。

list1.(obj)

aList = [123, 'xyz', 'zara', 'abc']
aList.append( 2009 )
print ("Updated List : ", aList)
# result
Updated List :  [123, 'xyz', 'zara', 'abc', 2009]

list2.count(obj)

aList = [123, 'xyz', 'zara', 'abc', 123]print ("Count for 123 : ", aList.count(123))
print ("Count for zara : ", aList.count('zara'))
# result
Count for 123 :  2
Count for zara :  1

list3.count(obj)

list1 = [1,2,3,4]
dict1 = {'a':1,'b':2}list1.extend(dict1)
print(list1)
# result
[1, 2, 3, 4, 'a', 'b']aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)print ("Extended List : ", aList)
# result
Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

list4.index(x[, start[, end]])

aList = ['runoob', 'xyz', 'runoob', 'abc']print ("runoob 索引位置: ", aList.index( 'runoob' ))
print ("runoob 索引位置 : ", aList.index( 'runoob', 1, 3 ))
# result
runoob 索引位置:  0
runoob 索引位置 :  2

list5.()

aList = [123, 'xyz', 'zara', 'abc']
blist = [1,2,3,5,6]
aList.insert(3, blist)print("Final List : ", aList)
# result
Final List :  [123, 'xyz', 'zara', [1, 2, 3, 5, 6], 'abc']

list6.pop()

list1 = ['Google', 'Runoob', 'Taobao']
list_pop = list1.pop(1)
print("删除的项为 :", list_pop)
print("列表现在为 : ", list1)
# result
删除的项为 : Runoob
列表现在为 :  ['Google', 'Taobao']

list7.()

aList = [123, 'xyz', 'zara', 'abc', 'xyz']aList.remove('xyz')
print ("List : ", aList)
aList.remove('abc')
print ("List : ", aList)
# result
List :  [123, 'zara', 'abc', 'xyz']
List :  [123, 'zara', 'xyz']

list8.()

aList = [123, 'xyz', 'zara', 'abc', 'xyz']aList.reverse()
print ("List : ", aList)
# result
List :  ['xyz', 'abc', 'zara', 'xyz', 123]

list9.sort()

def takeSecond(elem):return elem[1]# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]# 指定第二个元素排序
random.sort(key=takeSecond)# 输出类别
print('排序列表:')
print(random)
# result
排序列表:
[(4, 1), (2, 2), (1, 3), (3, 4)]

.(seq)

aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)print ("Extended List : ", aList )
# result
Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

字典常用函数

cmp(dict1,dict2)

len(dict2)

str(dict3)

dict4.clear()

tinydict = {'Name': 'Zara', 'Age': 7};print ("Start Len : %d" %  len(tinydict))
tinydict.clear()
print ("End Len : %d" %  len(tinydict))

dict5.copy()

dict1 =  {'user':'runoob','num':[1,2,3]}dict2 = dict1          # 浅拷贝: 引用对象
dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)# 输出结果
print(dict1)
print(dict2)
print(dict3)
# result
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}
#实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

dict6.(seq[, value])

dict7.get(key,[,value])

tinydict = {'Name': 'Runoob', 'Age': 27}print ("Age : %s" %  tinydict.get('Age'))# 没有设置 Sex,也没有设置默认的值,输出 None
print ("Sex : %s" %  tinydict.get('Sex'))  # 没有设置 Salary,输出默认的值  0.0
print ('Salary: %s' % tinydict.get('Salary', 0.0))
# result
Age : 27
Sex : None
Salary: 0.0

dict8.(key)

dict9.items()

dict1 = {'a':1, 'b':2
}
print(dict1.items())
# result
dict_items([('a', 1), ('b', 2)])

.keys()

dict1 = {'a':1, 'b':2
}
print("%s" % dict1.keys())
print("%s" % list(dict1.keys()))
# result
dict_keys(['a', 'b'])
['a', 'b']

.(key,=None)

dict1 = {'a':1, 'b':2
}
print(dict1.setdefault('s',"no"))
print(dict1)
# result
no
{'a': 1, 'b': 2, 's': 'no'}

.()

.()

tinydict = {'Name': 'Runoob', 'Age': 7}print ("Value : %s" %  tinydict.values())
print ("Value : %s" % list(tinydict.values()) )
# result
Value : dict_values(['Runoob', 7])
Value : ['Runoob', 7]

.pop(key,[,])

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}element = site.pop('name')print('删除的元素为:')
print(element)
print('字典为:')
print(site)
# result
删除的元素为:
菜鸟教程
字典为:
{'url': 'www.runoob.com', 'alexa': 10000}

.()

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.popitem()
print(pop_obj)
print(site)
# result
('url', 'www.runoob.com')
{'name': '菜鸟教程', 'alexa': 10000}

逻辑运算

or运算符

快捷键介绍 函数介绍

split()函数

用法 : str.split(str=“”,num=.count(str))[n]

s t r str str:表示为分隔符,默认为空格,但是不能为空(’’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素

n u m num num :表示分割次数。如果存在参数num,则仅分隔成 $num+1 $个子字符串,并且每一个子字符串可以赋给新的变量

[ n ] [n] [n]:表示选取第 n n n个分片

string = “www.gziscas.com.cn”1.以’.'为分隔符print(string.split(.))[‘www’, ‘gziscas’, ‘com’, ‘cn’]2.分割两次print(string.split(.’,2))[‘www’, ‘gziscas’, ‘com.cn’]3.分割两次,并取序列为1的项print(string.split(.,2)[1])gziscas

list()函数:

list()函数是的内置函数。它可以将任何可迭代数据转换为列表类型,并返回转换后的列表。当参数为空时,list函数可以创建一个空列表。

print()函数

a = 1
b = 2
sum = a + b
print( f"{a} + {b} = {sum}")
print("{0} + {1} = {2} ".format(a,b,sum))
print("%d + %d = %d"%(a,b,sum))

int(x,base=10)

x x x代表的是字符串或数字,base代表的进制数,默认十进制。将字符串(base进制下的)转化成数字(十进制下的)

输入的字符串如果是‘123’,就是代表123,输入的必须是数字。否则会报错

strip(),(),()

依次是

使用方法

str1.strip()
str2.lstrip()
str3.rstrip()

()

可以去除可以去除全部空格,主要用于字符串的替换(old, new, count)

old是需要替换的值,new是替换后的值,max是最多替换的次数

str = "我把你当亲兄弟对待,而你却像对待爸爸一样对待我?这是为什么?????";
print( str.replace("爸爸", "爷爷"))
print(str.replace("?", ":", 3))
#result
我把你当亲兄弟对待,而你却像对待爷爷一样对待我?这是为什么?????
我把你当亲兄弟对待,而你却像对待爸爸一样对待我:这是为什么::???

join()

用法:

‘sep’.join(seq)

参数说明

sep:分隔符。可以为空

seq:要连接的元素序列、字符串、元组、字典

上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串

str = "I am your father"
print(':'.join(str))
# result
I: :a:m: :y:o:u:r: :f:a:t:h:e:r

map()

用法:

map() 会根据提供的函数对指定序列做映射。

第一个参数 以参数序列中的每一个元素调用 函数,返回包含每次 函数返回值的新列表。

>>> def square(x) :         # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])    # 计算列表各个元素的平方
<map object at 0x100d3d550>     # 返回迭代器
>>> list(map(square, [1,2,3,4,5]))   # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))   # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]

用法介绍

print(a)和print(*a)的区别

a = [1,2,3,4,4,5]
print(*a, sep=' ')
print(a,sep=' ')
# 运行结果
1 2 3 4 4 5
[1, 2, 3, 4, 4, 5]

dict[keys,]和dict(zip(keys,))的区别

keys= ['a','b']
values = [1,2]
print(dict([keys,values]))
print(dict(zip(keys,values)))
# 运行结果
{'a': 'b', 1: 2}
{'a': 1, 'b': 2}如果在前面加一个*
如:print(*dict(zip(keys,values)))会怎么样?
# 运行结果
a b

格式化输出

的格式化输出主要有四种方式:

name = input()
print(f'I am {name} and I am studying Python in Nowcoder!')

name = input()
print('I am {} and I am studying Python in Nowcoder!'.format(name))

name = input()
print('I am %s and I am studying Python in Nowcoder!'%name)

print("I am",input(),"and I am studying Python in Nowcoder!")

注意

name = input()只能读入一个数据,数字,字符串等,不能是多个。

而输入name =input("").split(" ")(注意split(“”)中的“”中间无内容会报错,空格算内容),这样的输入可以输入一个多个数字,字符串,都会放在列表中。但是如果是:

name1,name2 = input("请输入").split(" ")

此时就不能随意输入多个数据,必须是和前面变量对应数量的个数,否则也会报错。

注意事项

input().split("\n")无法实现隔行读取

在中,字符串是不可变的,也就是你不能直接修改字符串中的某个字符。当你尝试执行 str1[0] = str((int(str1[0]) + 3) % 9) 这行代码时,会抛出一个错误,提示你不能为字符串的指定位置赋值。

如果你想修改字符串中的某个字符,可以考虑将字符串转换为列表,进行修改后再转换回字符串。例如:

str1 = list(str1)
str1[0] = str((int(str1[0]) + 3) % 9)
str1 = ''.join(str1)

这样就可以实现将字符串中的第一个字符修改为 (int(str1[0]) + 3) % 9 的结果。

为什么下面这段代码不能执行对list1的修改?

str1 = input()
list1 = list(str1)
for i in range(len(list1)):list1[i] = str((int(list1[i]) + 3) % 9)print(list1)

答:

这段代码没有改变列表 list1 中的元素,是因为在循环中你使用的是变量 i ,它仅仅是一个迭代器,赋值操作并不会修改列表元素本身。每次迭代,i 都指向列表中的一个元素,但是对 i 的修改并不会反映到列表中。

如果你想要修改列表中的元素,可以通过索引直接访问和修改元素。以下是修正后的代码:

str1 = input()
list1 = list(str1)
for i in range(len(list1)):list1[i] = str((int(list1[i]) + 3) % 9)print(list1)

index和find函数的区别:

下标索引不会越界,但是下标使用会越界(列表,元组,字符串,字典)

list1 =[ 1,3,4,5,5]
print(list1[1:100000])
# result
[3, 4, 5, 5]

list1 =[ 1,3,4,5,5]
print(list1[8])
# result
list index out of range

对于字典一样,如果查找的键不在字典中,就会报错

所以防止报错,一般在字典中查找一个不确定在不在字典中的键时,我们使用in先检测是否在字典中

name in dict1 and  secret == dict1[name]

保留小数

主要有三种方法

float转int

float转成int只需要int()函数即可。

但是在输入字符串数,可能有人会想能不能直接通过int()转换,如将字符”12.3“直接转成12:

value1 = int(input())

答案是不行的,字符串"123.123"不能通过int()直接转换成123

正确做法是:

value1 = int(float(input()))

16进制转10进制

16进制转10进制,使用int()函数即可。

print(int(input(),base=16))

字母大小写转换

主要有两种方法:

逐个遍历

没有所谓的字符这个概念,所以更不可能存在c++中的A =‘\32’。如果要将要取出字符,要不然用下标索引,要不然直接用for in语句。

msg = 'Niu Ke le'
for num in msg:if 97 <= ord(num) <= 122: #小写字母upper_num = ord(num)-32 #大小写字母之前差了32#chr()函数可以将编码数值转为字符(python没有字符的概念)print (chr(upper_num),end='')else:print(num,end='')  #不是小写字符,原样输出
print() #输出一个换行符
msg = 'Niu Ke le'
for num in msg:if 65 <= ord(num) <= 90: #大写字母upper_num = ord(num)+32 #大小写字母之前差了32#chr()函数可以将编码数值转为字符(python没有字符的概念)print (chr(upper_num),end='')else:print(num,end='')  #不是大写字符,原样输出
# result
NIU KE LE
niu ke le

直接使用现有函数

.lower() --- 全部小写
.upper() --- 全部大写
.title() --- 各个字符的首字母大写
.capitalize() --- 首字母大写

*和**的用法

print("hi"*3)
# result
hihihi

def func(*p):print(p)func (1,2,3,4,4)
# result
(1, 2, 3, 4, 4)

** 下标索引的用法

s t r n a m e [ s t a r t : e n d : s t e p ] [start : end : step] [start:end:step]

对各个部分的说明:

值得一提的是,下标索引不会越界:

a = '123'
b = a[:5]
print(b)
# result
123

如何实现多行输入 如何解决index找不到元素时报错

list1 = input().strip().split()
name = input()if ( name in list1):print(list1.index(name))
else:print(False)

如何快速打印列表中的所有元素 如何判断列表是否为空

if ( list1 ):

if (len(list1) == 0)

if-else的特殊用法 对于二维列表的列表解析

如果存在一个矩阵 x x x,让你求解 3 x 3x 3x的值,你要怎么做?

矩阵如图所示,输入一个n,求解 n x nx nx,打印出该列表。

1 2 3 4 5 6 7 8 9 \begin{} 1&2&3\\ 4&5&6\\ 7&8&9\\ \end{} 147​258​369​

中输入转列表/元组 元组能不能使用列表解析

list1 =[i for i in range(0,6) if i %2 == 0]
print(list1)
# result
[0, 2, 4]

zip()和()

在中,zip()和()是两个不同的内置函数,它们具有不同的功能和用途。

zip()函数用于将多个可迭代对象(如列表、元组等)中对应位置的元素打包成一个新的元组,返回一个迭代器。每个元组的元素来自于不同的可迭代对象在相同位置的元素。

例如:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
result = zip(list1, list2)
print(list(result))  # [(1, 'a'), (2, 'b'), (3, 'c')]

zip()函数可以用于快速组合多个列表或元组的元素,通常与循环结构一起使用。

()函数用于创建一个新的字典,其中指定的键被设置为同一个值(默认为None),返回这个新的字典。

例如:

keys = ['a', 'b', 'c']
value = 0
result = dict.fromkeys(keys, value)
print(result)  # {'a': 0, 'b': 0, 'c': 0}

()函数可以用于快速创建包含特定键和默认值的字典。

总结:

它们的区别主要在于功能和用途。zip()用于组合多个可迭代对象的元素,而()则用于创建新的字典。

什么时候可以使用list()转换成列表

在中,可以使用list()函数将可迭代对象转换为列表。可迭代对象是指可以被迭代遍历的对象,比如字符串、元组、集合、字典等。

list()函数可以接受不同类型的可迭代对象作为参数,并将其转换为列表。具体转换规则如下:

如果可迭代对象是一个字符串,list()函数会将字符串中的每个字符作为列表的一个元素。

my_str = "Hello"
my_list = list(my_str)
print(my_list)

输出结果:

['H', 'e', 'l', 'l', 'o']

如果可迭代对象是一个元组,list()函数会将元组的元素作为列表的元素。

my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list)

输出结果:

[1, 2, 3]

如果可迭代对象是一个集合,list()函数会将集合的元素作为列表的元素。由于集合无序且元素不可重复,生成的列表也无序且元素不重复。

my_set = {1, 2, 3}
my_list = list(my_set)
print(my_list)

输出结果:

[1, 2, 3]

如果可迭代对象是一个字典,list()函数会将字典的键作为列表的元素。注意,字典的元素顺序是不确定的,因为字典是无序的数据结构。

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
my_list = list(my_dict)
print(my_list)

输出结果:

['name', 'age', 'city']

需要注意的是,list()函数并不递归地将可迭代对象中的所有元素都转换为列表。它只转换最外层的元素。如果你希望将嵌套的可迭代对象转换为列表,可以使用递归或其他方法来实现。

总结来说,当你需要将可迭代对象转换为列表时,可以使用list()函数来实现。这对于需要使用列表数据结构的场景非常有用。

什么时候可以使用dict()转换成字典

在中,可以使用dict()函数将可迭代对象转换为字典。可迭代对象是指可以被迭代遍历的对象,比如列表、元组、集合等。

dict()函数可以接受不同类型的可迭代对象作为参数,并根据不同的情况将其转换为字典。具体转换规则如下:

如果可迭代对象是一个包含可哈希的键值对元组的列表,那么dict()函数会将其转换为字典。每个键值对元组中,第一个元素会被视为键,第二个元素会被视为对应的值。

my_list = [('name', 'John'), ('age', 30), ('city', 'New York')]
my_dict = dict(my_list)
print(my_dict)

输出结果:

{'name': 'John', 'age': 30, 'city': 'New York'}

如果可迭代对象是一个包含可哈希的键值对元组的元组(或其他可迭代对象),那么dict()函数也会将其转换为字典。每个键值对元组中,第一个元素会被视为键,第二个元素会被视为对应的值。

my_tuple = (('name', 'John'), ('age', 30), ('city', 'New York'))
my_dict = dict(my_tuple)
print(my_dict)

输出结果同样为:

{'name': 'John', 'age': 30, 'city': 'New York'}

如果可迭代对象是一个包含可哈希的键值对元组的集合,处理方式与列表类似。

my_set = {('name', 'John'), ('age', 30), ('city', 'New York')}
my_dict = dict(my_set)
print(my_dict)

输出结果同样为:

{'name': 'John', 'age': 30, 'city': 'New York'}

需要注意的是,在转换过程中,dict()函数会自动忽略重复的键值对。只有最后一个具有相同键的键值对将保留在生成的字典中。

当你需要将可迭代对象转换为字典时,可以使用dict()函数来实现这个转换。这在处理需要使用字典数据结构的数据时非常有用。

需要熟悉的代码

dict1 = {'<': 'less than','==': 'equal'}
print('Here is the original dict:')
for x in sorted(dict1):print(f"Operator {x} means {dict1[x]}.")
print("")
dict1['>'] = 'greater than'
print("The dict was changed to:")
for x in sorted(dict1):
print(f'Operator {x} means {dict1[x]}.')

dict1 = {'name': 'Niuniu','Student ID': 1}
dict2 = {'name': 'Niumei','Student ID': 2}
dict3 = {'name': 'Niu Ke Le','Student ID': 3}
list1 = []
list1.append(dict1)
list1.append(dict2)
list1.append(dict3)for i in list1:print(f"{i['name']}'s student id is {i['Student ID']}.")

dict1 ={'Beijing': {'Capital': 'China'},'Moscow': {'Capital': 'Russia'},'Paris': {'Capital': 'France'}}for i in sorted(dict1):print(f"{i} is the capital of {dict1[i]['Capital']}!")

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了