首页 > 编程语言 >学python的第七天

学python的第七天

时间:2024-04-05 13:34:21浏览次数:25  
标签:code python 列表 fruit words print 第七天 字典

python中的数据结构

python中有四种数据结构,列表,字典,元组,集合
列表(list): list = [val1,val2,val3,val4]
字典(dict): dict = {key1:val1,key2:val2}

元组(tuple): tuple = (val1,val2,val3,val4)
集合(set): set = {val1,val2,val3,val4}

1,列表

# 1,列表
# 列表中的每一个元素都是可变的,(添加,修改,删除)
# 列表中的元素是有序的,也就是说每一个元素都有一个位置
# 列表可以容纳Python中的任何对象
weekday = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(weekday[0])
all_in_list = [1, 1.0, 'a word', print(1), True, [1, 2],   (1, 2), {'key': 'value'}]
#             整数,浮点数,字符串,  函数,  布尔值, 列表中套列表, 元组          字典
# 插入元素:insert  添加多元素:extend 或 使用运算符:+=
fruit = ['apple', 'pear']
fruit.insert(1, 'grape')
print(fruit)

fruit[0:0] = ['Orange']
print(fruit)

# 删除元素:remove
fruit.remove('apple')
print(fruit)

# 修改元素
fruit[0] = 'Orangefruit'
print(fruit)

# 还有一种办法删除:del关键字
del fruit[0:2]
print(fruit)
# 列表的索引和字符串的索引是一样的

2,字典

# 2,字典
# 字典中数据必须是以键值对的形式出现的
# 逻辑上讲,键是不能重复的,而值可以重复
# 字典中的键(key)是不可变的,也是无法修改的;而值(value)是可变的,可修改的,可以是任何对象
code = {'BD': 'BaiDu','AQY': 'AiQiYi','YK':'YouKu'}
print(code)
# 字典中的键值不会有重复,只会生效一次
a = {'wby':123,'wby':123}
print(a)

# 字典的增删改查
# 添加元素
code['CN'] = 'China'
print(code)

# 字典添加多元素:update
code.update({'w':'wang','b':'bing','y':'yin'})
print(code)

# 删除也是使用del
del code['w']
print(code)

# 字典是不能够切片的
# 访问字典视图,三种方法
# item(),返回字典的所有的键值对视图
# keys(),返回字典键视图
# values(),返回字典值视图

3,元组

# 3,元组(Tuple)
# 元组不可修改,但是可以被查看索引
letters = ('a','b','c','d','e','f','g')
print(letters[0])
print(letters[3])

4,集合

# 4,集合(Set)
# 集合可以做运算,添加和删除,不能被切片也不能索引
a_set = {1,2,3,4,5}
a_set.add(6)             # 添加
a_set.discard(3)         # 删除,还可以用remove
a_set.clear()            # 清除集合
print(a_set)

5,数据结构中的一些技巧

多重循环,推导式

# 5,数据结构中的一些技巧
# 多重循环
num_list = [5,3,2,6,9,1,7]
# print(sorted(num_list))  # 正序
print(sorted(num_list,reverse=True))   # 逆序

# 需要两个列表时,用到zip函数
# for a, b in zip(num_list, str):
# print(b, 'is', a)

# 推导式(列表中的解析式)
import time

q = []
t0 = time.perf_counter()
for i in range(1, 20000):
    q.append(i)
print(time.perf_counter() - t0, 'seconds process time')

t0 = time.perf_counter()
b = [i for i in range(1, 20000)]
print(time.perf_counter() - t0, 'seconds process time')

m1 = [i**1 for i in range(1, 10)]
n1 = [j+1 for j in range(1, 10)]
k1 = [n for n in range(1,10) if n % 2 == 0]

m2 = {i:i+1 for i in range(4)}
n2 = {i:j for i,j in zip(range(1,6),'abcde')}
k2 = {i:j.upper() for i,j in zip(range(1,6),'abcde')}

print(m1)
print(n1)
print(k1)
print(m2)
print(n2)
print(k2)

letter = ['a','b','c','d','e','f','g']
for num,letter in enumerate(letter):
    print(letter,'is',num + 1)

6,综合项目:词频统计

# 开发人:wby
# 类型:python
# 开发时间:2024/4/3  

# 综合项目 :词频统计
import string

path = "D:\桌面文件\Walden.txt"
with open(path,'r',encoding='utf-8') as text:
    words = [raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]
    words_index = set(words)
    counts_dict = {index:words.count(index) for index in words_index}


for words in sorted(counts_dict,key=lambda x: counts_dict[x],reverse=True):
        print('{}-{} times'.format(words,counts_dict[words]))

标签:code,python,列表,fruit,words,print,第七天,字典
From: https://blog.csdn.net/Wby123456wby/article/details/137358346

相关文章

  • 学python的第八天
    补充前面某天学的函数,函数具有函数名,参数,返回值,作用域:当前模块,函数中定义:嵌套函数,类中定义:方法语法格式def函数名(形式参数列表):函数体return返回值#如果没有数据返回值,则可以省略return语句# 1,变量函数中变量的作用域,可以在模块中创建,作用域......
  • 使用Python写简单的点云SUSAN关键点检测
    一、代码Pythonimportnumpyasnpimportopen3daso3dfromscipy.spatialimportcKDTreefromjoblibimportParallel,delayeddefcalculate_response(idx,points,radius,t,kdtree):#使用KD树找到半径内的所有点neighbor_indices=kdtree.query_ba......
  • 归并排序 返回逆序数 python
    defmerge_sort_and_count_inversions(arr):n=len(arr)ifn<=1:returnarr,0#如果n小于等于1,数组已经有序,直接返回数组本身和逆序数0mid=n//2left_lst,inv_left=merge_sort_and_count_inversions(arr[:mid])#对左半部分进行递......
  • python 插值搜索-迭代与递归(Interpolation Search)
             给定一个由n个均匀分布值arr[]组成的排序数组,编写一个函数来搜索数组中的特定元素x。         线性搜索需要O(n)时间找到元素,跳转搜索需要O(?n)时间,二分搜索需要O(logn)时间。插值搜索是对实例二分搜索的改进,其中排序数组中的值是......
  • Python自学:类 构造方法练习(思路打不通,还遇到赋值错乱!)
    开始学习类一个练习,就是输入学生信息,并且要用到forinput结合,构造方法等。自己思考时,这个应该先设计一个类,然后用input输入,之前练习过main架构 tools调用两个py文件相互辅助,这个是不是也是,还有全局变量,想了很多结果不是,乱的。看了课件,用到forxinrange(1,11):开......
  • Python基础
    本人以前学习python基础时的两个简单实战1.模拟网上购物流程#创建空的购物车list=[]foriinrange(5):goods=input("请输入对应的商品编号和商品名称入库,每次只能输入一个产品:")list.append(goods)foriteminlist:print(item)#创建一个空列表,购物车......
  • Python线程池的概念涉及创建一个线程集合(即线程池)
    Python线程池的概念涉及创建一个线程集合(即线程池),这些线程预先被初始化并保存在内存中,等待任务的分配和执行。使用线程池可以有效地管理和复用线程资源,提高程序的执行效率。以下是Python线程池相关的概念及其示例程序:1.线程池(ThreadPool)线程池是一个管理线程的集合,它负责线......
  • LeetCode in Python 88. Merge Sorted Array (合并两个有序数组)
    合并有序数组也有两种方法,区别是空间复杂度不同。第一种,重新开辟一个数组空间,大小为O(m+n),另外需要三个指针分别指向两个有序数组和新开辟的数组,依次判断两个数组内元素大小,不断更新指针即可。第二种,无需单独开辟空间,在第一个数组(该数组空间足够存放两个数组总长的数据)内进行......
  • nodejs+python开发基于uniapp的校园跑腿系统 微信小程序
    本文先提出了开发基于uniapp的高校校园跑腿系统的背景意义,然后通过功能性和非功能性分析阐述本系统的需求,然后从功能设计和数据库设计两方面进行系统的设计建模。在技术实现部分采用了nodejs作为开发后台的编程语言,客户端使用uniapp,数据库选择MySQL。最后进行了代码的编写,并说......
  • 【python毕业设计】社区居民健康档案管理系统8cgo7
    典型的应用系统中还需要系统维护这一功能,其主要包括:(1)可以完成社区居民家庭和个人基本信息的维护和查询功能。(2)可以完成社区居民健康档案管理系统用户的添加、删除、修改等功能。(3)可以完成用户组的维护和用户组的查询功能。(4)可以完成数据备份和恢复的功能。(5)可以完成......