Python学习二:列表、循环、元组、字典

《毫无障碍学Python》邓文渊著 学习笔记

1.列表结构(List) (又称清单,即为其他语言的数组Array)

列表的使用:列表名 = [元素1,元素2,…] 中括号隔开,元素数据类型可同可不同,获取元素值方法:下标访问(下标从0开始,可为负值表示倒数第几个元素)

list1 = [23,'Apple',True]
print(list1[1])
print(list1[-1])


  多维列表

list2 = [["Harry",1234],["Marry",4567],["Tonny",9876]]
print(list2[0])
print(list2[2][0])

1.1.range函数

range函数 功能:创建整数有序列表
  range函数语法三种:1、2、3个参数
  1参:变量列表 = range(整数型) 元素:0~整数型-1

list3 = range(5) #即 list3 = [0,1,2,3,4]

.
  2参变量列表 = range(起始值,终止值)(若起始值>终止值->产生空列表) 元素:起始值~终止值-1

list4 = range(-5,5) #即 list4 = [-5,-4,-3,-2,-1,0,1,2,3,4]

.
  3参变量列表 = range(起始值,终止值,间隔值)

list5 = range(-1,5,3)	# list5 = [-1,2]
list6 = range(4,-1,-2)  #间隔值可负,此时必要起始值>终止值且此时元素:起始值~终止值+1
print(list5[-1])
print(list6[-1])

2.循环

##循环命令:

  1. for命令执行固定次数循环
  2. while命令执行不固定次数循环

2.1 for循环(通常用于固定次数循环)

.
  for循环 通常用于固定次数循环
  语法结构   for 变量 in 列表:
           程序块

listFor = ["Apple","Banana","Watermelon"]
for f in listFor:     #系统会将列表元素依次作为变量值,每次改变变量值后执行一次程序块
    print(f,end=",")
print("\n")

for i in range(1,11):
    print(i,end=",")
print("\n")
#计算正整数的和
sum = 0
n = int(input("Please input a number:"))
for n in range(1,n+1):
    sum+=n
print("The sum of 1 to %d is %d"%(n,sum))
    ##for嵌套循环
#九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%-2d"%(j,i,i*j),end=" ")
    print()

##break命令(跳出循环),continue命令(跳出本次循环,进行下次循环)

for i in range(1,6):
    if(i==3):
        continue
    print(i)
print()

for i in range(1,6):
    if(i==3):
        break
    print(i)

2.1.1 for…if…else循环

for 变量 in 列表:
  程序块1
  if(条件表达式):
    程序块2
    break
   else:
    程序块3

#判断是否质数
n = int(input("Please input a number can judge whether a prime number(质数):"))
if(n==2):
    print("prime number")
else:
    for i in range(2,n):
        if(n%i==0):
            print("not prime number")
            break
    else:
        print("prime number")

2.2while循环

while循环 通常用于没有固定次数的循环
  while(条件表达式):     #括号可省略
    程序块

total = i = 0
while(i<10):
    i+=1
    total+=i
print(total)

3.高级列表操作

令   list1 = [1,2,3,4,5,6],x = [8,9]
list1*n    列表重复n次
list1[n1:n2]       取出n1~n2-1元素 n1、n2为下标!
list1[n1:n2:n3]      取出n1~n2-1元素,间隔n3
del list1[n1:n2]      删除n1~n2-1元素
del list1[n1:n2:n3]    删除n1~n2-1元素,间隔n3
n = len(list1)    返回列表中元素数量
n = min(list1)    返回元素最小值
n = max(list1)   返回元素最大值
n = list1.index(n1)    取首个值为n1元素的下标
n = list1.count(n1)    n1元素出现的次数
list1.append(n1)     将n1作为元素加到列表最后
list1.extend(x)      将列表x中元素逐一加至列表最后
list1.insert(n,n1)     在位置n加入n1元素
n = list1.pop()       取列表最后元素并删除(括号内数值为n,则对下标为n的元素操作)
list1.remove(n1)     删除首次出现的n1元素
list1.sort()        将列表升序排列
#append 输入成绩,-1结束,计算总分和平均分
score = []
total = inscore = 0
while(inscore != -1):
    inscore = int(input("Please input student score:"))
    score.append(inscore)
score.pop(-1)       #删除列表最后元素“-1”
print("The sum of students numer is %d"%(len(score)))
for i in range(0,len(score)):
    total +=score[i]
average = total/len(score)
print("The sum of score is %d and average is %.2f"%(total,average))

4.元组(Tuple)

.
  元组结构与列表完全相同,不同 元组个数及元素值不可改变 而列表可变
  元组语法元组名 = (元素1,元素2,…)   #元组小括号,列表中括号
  #列表高级方法除改变元素个数及元素值得方法皆可用于元组
  #列表和元组的相互转换:

tuple1 = (1,2,3)
list1 = list(tuple1)    #元组->列表
list2 =[9,8,7,6]
tuple2 = tuple(list2)   #列表->元组

5.字典Dict

语法: 字典名称 = {键1:值1,键2:值2,键3:值3,…}

dict1 = {"Banana":15,"Watermelon":32,"Apple":45}    #元素在字典中排列随机,不可dict1[0]访问
print(dict1["Apple"])   ##"键"作为下标返回"值",因此"键"必须唯一,"值"可重复
dict1["Orange"] = 25    ##新增元素,即设定新“键”,新“值”
    ##删除字典
del dict1["Banana"] ##删除字典中特定元素 del 字典名 [键]
dict1.clear()       ##删除字典中所有元素 字典名.clear()
del dict1           ##删除字典,后字典变量不存在了  del 字典名

5.1 高级字典操作

若 dict1 = {“Joy”:15,“Lisa”:21}
len(dict1)    返回字典元素数量
dict1.clear()   删除字典中所有元素
dict1.copy         复制字典 dict2 = dict1.copy()
dict1.get(键,值)       返回键对应的值 ,若键不存在,则返回参数中的值
键 in dict1         检验“键”是否存在 b = “Joy” in dict1 #b=True
dict1.items()        返回以 “键——值” 组为元素的组合
dict1.keys()        返回以“键”为组合的组合
dict1.setdefault(键,值)    与get()类似,若键不存在,则以参数创建新元素
dict1.values()       返回以“值”为元素的组合

(1)字典Dict中:keys 键组合、values值组合、items键-值组合

dict2 = {"Lily":70,"Tom":65,"Jery":89}
dict2["Jone"] = 83 #新增“键-值”
listkey = list(dict2.keys())
listvalue = list(dict2.values())
for i in range(len(listkey)):
    print("%s's score is %d"%(listkey[i],listvalue[i]))

(2)字典Dict的get、setdafault方法

dict1 = {"Lily":70,"Tom":65,"Jery":89}
dict1["Jon"] = 90		#返回键对应的值 ,若键不存在,则返回参数中的值
n = dict1.get("Lily",100) #n = 70
print(n)

n = dict1.setdefault("Mary") #dict1 = {"Lily":70,"Tom":65,"Jery":89,"Marry":Null}
n = dict1.setdefault("Hary",76) #dict1 = {"Lily":70,"Tom":65,"Jery":89,"Harry":76}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章