Python第三周作业
Python第三周作业
文章目录
- Python第三周作业
1.编写代码,将列表[1, 2, 3, 4, 5]反转,不使用内置的reverse()方法
2.使用切片获取字符串"Python"的后3个字符
3.解释哈希表(字典)的键为什么必须是不可变类型,并举例说明
4.编写一个函数count_chars(s),统计字符串中每个字符出现的次数,返回字典
5.字典的get()方法和直接通过键访问(如dict[key])有何区别?
6.用生成器表达式生成1到10中偶数的平方,并转换为列表
编写代码,将列表[1, 2, 3, 4, 5]反转,不使用内置的reverse()方法
data_list = [1, 2, 3, 4, 5]# 利用循环反转
rdata_list = []
for i in range(-1, -len(data_list)-1, -1):rdata_list.append(data_list[i])print(f"1-1. 列表反转: {rdata_list}")# 利用切片反转
rdata_seq = data_list[::-1]
print(f"1-2. 列表反转: {rdata_seq}")
使用切片获取字符串"Python"的后3个字符
data_str = "Python"
print(f"'2. Python'的后3个字符: {data_str[-3:]}")
解释哈希表(字典)的键为什么必须是不可变类型,并举例说明
为了保证数据的完整性和查询效率
Python
明确禁止使用列表作为键,因为列表是可变;如果允许这样操作的话,键值被改变了,其哈希值也会发生变化,导致字典无法正确找到对应的值
test_dict = {[1, 2]: "list"}
print(test_dict)
编写一个函数count_chars(s),统计字符串中每个字符出现的次数,返回字典
str_input = input("请输入一个字符串:")def count_chars(str_input):str_count = dict()for str in str_input:str_count[str] = str_count.get(str, 0) + 1return str_countstr_count = count_chars(str_input)
print(f"{str_input}中每个字符串出现如下:{str_count}")
字典的get()方法和直接通过键访问(如dict[key])有何区别?
get()
是方法,是函数;当无对应的值的时候,返回None
;不会报错
dict[key]
是语法,运算符重载;当无对应的值的时候,则会报KeyError
的错误
用生成器表达式生成1到10中偶数的平方,并转换为列表
x = (i ** 2 for i in range(0, 11, 2)if i > 0)
y = [i for i in x]
print(f"list:{y}")