ist_demo = [1,2,3]
list_two = ist_demo
ist_demo[0] = 99
print(list_two)
list_demo = 1, 2, 1, 3 , 4, - 5, 3
de = set(list_demo)
print(de)
print(type(de))
print(type(list_demo))
默认为元组
dict_demo = {'a':1, 'b':2, 'a':3}
print(dict_demo['a'])
结果为 3
列表、元组和字典的区别
- 外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据。
- 存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。
- 访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。
- 是否可变类型:列表是可变类型,元组是不可变类型,字典是可变类型。
编程题
-
编写一个函数,用于判断用户输入的字符串是否由小写字母和数字构成。
def message(): myStr = input('请输入密码,只能是字母和数字:') if myStr.isalnum(): print("符合要求") else: print('不符合要求') message()
-
请根据下述需求,编写一个程序。
用户输入一个字符串,将下标为偶数的字符提出来合并成一个新的字符串A,再将下标为奇数的字符提出来合并成一个新的字符串B,再将字符串A和B连接起来并输出。
oushu = '' jishu = '' lise_demo = list(input('输入任意字符:')) for str_0 in lise_demo[::2]: oushu += str_0 for str_1 in lise_demo[1::2]: jishu += str_1 print(oushu+jishu)
-
请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写,a和A看做是同一个字母),统计出的结果,请按照[‘a’:3,’b’:2]的格式输出。
arr = [] def count(): my_str = input('请输入只包含字母的字符串:') if my_str.isalpha(): newstr = my_str.lower() for string in newstr: arr.append(string) a = {} for i in arr: if arr.count(i) >= 1: a[i] = arr.count(i) print(a) else: print('输入内容有误!!!') count()
-
请根据下列需求,编写一个程序。
用户输入一个字符串,请将字符串中的所有字母全部向后移动一位,最后一个字母放到字符串的开头,最后将新的字符串输出。
arr = [] result = '' my_str = input("请输入字符串:") for string in my_str: arr.append(string) last = arr[-1] arr.pop() arr.insert(0,last) for new in arr: result += new print(result)
-
假设有个列表存储了奇数个数字,请编写程序,排序输出中间位置的数字。
arr = [] length = int(input("请要输入数字的总个数(必须为奇数):")) i = 0 while i < length: num = int(input("输入第%d个数字:"%(i+1))) arr.append(num) i+=1 arr.sort() index = int(length-1 >> 1) print(arr[index])
-
已知info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1]。
print('5 '*20) print('第一种') arr = [1,2,3,4,5] arr.reverse() print(arr) print('第二种') arr.sort(reverse=True) print(arr)
-
请编写一个函数,满足下列需求:
用户输入n,然后输入n个整数到列表中,列表中的n个整数需要使用冒泡进行排序,并将排序后的结果输出。
arr = [] length = int(input("请输入数字的总个数:")) i = 0 while i < length: num = int(input("输入第%d个数字:"%(i+1))) arr.append(num) i+=1 print("排序前:%s"%arr) # 冒泡排序 for i in range(length): flag = 0 for j in range(i+1,length): if arr[j-1] > arr[j]: arr[j-1],arr[j] = arr[j],arr[j-1] flag = 1 if not flag: break print("排序后:%s"%arr)
-
请编写一个程序,实现删除列表重复元素的功能。
arr = [] length = int(input("请输入列表的总个数:")) i = 0 while i < length: element = input("输入第%d个元素:"%(i+1)) arr.append(element) i+=1 # 列表转为集合 newList = set(arr) print(newList)
-
假设有两个3 x 3的矩阵,请编写一个程序,计算这两个矩阵的和并输出。
def add(a, b): # 下面两行保证输入的a和b是维数相同的矩阵,根据实际情况不要也可以 assert (len(a) == len(b)) assert (all([len(a[i]) == len(b[i]) == len(a[0]) for i in range(len(a))])) i, j = len(a), len(a[0]) c = [[0] * j] * i for m in range(i): for n in range(j): c[m][n] = a[m][n] + b[m][n] return c a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]] c = add(a, b) print(c)
-
请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学生学号从小到大输出学生的信息。
dic = {} i=0 while i<3: number = input("输入学生学号:") name = input("输入学生姓名:") dic.__setitem__(number,name) i+=1 print("排序前:%s"%dic) def dict2list(dic:dict): ''' 将字典转化为列表 ''' keys = dic.keys() vals = dic.values() lst = [(key, val) for key, val in zip(keys, vals)] return lst new = sorted(dict2list(dic), key=lambda x:x[0], reverse=False) print("排序后:%s"%new)
-
已知一个字典包含若干员工信息(姓名和性别),请编写一个函数,删除性别为男的员工信息。
def delMale(dict): keys = [] values = [] for (key,value) in dict.items(): keys.append(key) values.append(value) for value in values: if value == 0: index = values.index(value) arrKey = keys[index] del dict[arrKey] values[index] = 3 keys[index] = "占位" dic = {"小明":0, "小红":1,"小兰":1,"小白":0} print("删除前:%s"%dic) delMale(dic) print("删除后:%s"%dic)
-
已知一个列表存储了多个整数,请编写函数,删除列表中的素数。
arr = [12,3,37,7,91,67,27,45,6] def delPrime(arr): for element in arr: # 质数大于 1 if element > 1: # 查看因子 for i in range(2, element): if (element % i) == 0: break else: arr.remove(element) delPrime(arr) print(arr)