目录
常用输入
单个元素
n,m=map(int,input().split())
一维数组
多行
arr=list(int(input()) for i in range(n))
arr=[int(input()) for i in range(n)]
效果一致。
一行
arr=list(map(int,input().strip().split()))
arr=[map(int,input().strip().split())]
效果不一致,为什么?
因为——第二组输出指针:
第二组用了map,返回的map对象是一个迭代器,并不会直接将元素转换为列表。
二维数组
mix=[list(map(int,input().split())) for i in range(n)]
mix=[]
for _ in range(n):
mix.append(list(map(int,input().split())))
效果一致。
什么是迭代器
想象你面前有一排盒子,每个盒子里都装着一个东西。你想要逐个查看每个盒子里装的是什么,但是你并不想一下子把所有盒子都打开摆在面前,而是想一个一个地打开查看,看完一个再看下一个。迭代器就像是帮助你完成这个过程的 “助手”。
在 Python 里,迭代器是一个可以记住遍历位置的对象,它会按照一定的顺序逐个返回元素,而且每次只返回一个元素,直到没有更多元素可以返回为止。
遍历:
# 定义一个列表
numbers = [1, 2, 3, 4, 5]
# 使用 map() 函数将列表中的每个元素乘以 2,得到一个迭代器
squared_iterator = map(lambda x: x * 2, numbers)
# 直接遍历迭代器
for num in squared_iterator:
print(num)
逆序
数组逆序
reversed()和arr.reverse()。前者是一个逆序迭代器,后者直接更改原数组arr。
n=int(input())
arr=list(map(int,input().split()))
arr_rev=reversed(arr) #迭代器
for i in arr_rev:
print(i,end=" ")
'''
arr.reverse() #直接改
print(" ".join(map(str,arr)))
'''
字符串逆序
s = "Hello"
reversed_s = s[::-1] #切片
s = "Hello"
reversed_s = ''.join(reversed(s)) #函数
输出百分比
print(f"{res:.2%}")
定义无穷大与无穷小
#第一种
min_start = float('inf')
#第二种
import math
max_distance = math.inf
判断整次幂
#math包
math.log(x,2).is_integer()
#位运算
x&(x-1)==0
创建空二维数组
st1 = [[0] * N for _ in range(N)]
二维字典(嵌套字典)
举例:统计每条对角线每个元素的数量:多个对角线——一层健;多个元素——二层健(一层值);每个元素数量——二层值。
注意:空键值无法访问,需提前定义。
#一层定义 st1[line]={} #二层定义 st1[line][element]=0
更多优质学习内容——微信公众号:“以学会友ing”