我是靠谱客的博主 激昂蛋挞,这篇文章主要介绍python:外部数据的输入,转化,遍历,输出,现在分享给大家,希望可以做个参考。

目录

    • 一、输入
      • 1.1 输入单个数字
      • 1.2 输入一行多个数字
      • 1.3 输入两个字符,以空格分开,分别赋值
      • 1.4 输入1行字符,以空格分开,赋值给列表
      • 1.5 输入n行,每行m个字符,以list存储
    • 二、数据的创建,转化,排序
      • 2.1 set 容器
      • 2.2 zip 函数
      • 2.3 map 函数
      • 2.3 dict 函数
      • 2.4 sorted 排序
        • 2.4.1 按某一参数排序
        • 2.4.2 按多个参数排序
      • 2.5 sort排序
        • 2.5.1 按某一元素排序
      • 2.6 将两个列表合并
      • 2.7 列表的转置
      • 2.8 创建为0的数据
      • 2.9 ASCII码
    • 三、数据的遍历和索引
      • 3.1 enumerate的用法
      • 3.2 for循环
        • 3.2.1 从后往前
        • 3.2.2 for _ in range(n):
      • 3.3 遍历字典
      • 3.4 列表的索引
    • 四、输出
      • 4.1 带空格输出
      • 4.2 join函数去除格式
      • 4.3 字典型列表格式化输出
      • 4.4 列表倒序输出
      • 4.5 列表不带格式输出
      • 4.6 列表解包输出
    • 五、各种数据的检查
      • 5.1 判断TreeNode是否为空
      • 5.2 空列表空串检查
      • 5.3 字符串空格检查

一、输入

1.1 输入单个数字

n = int(input())

1.2 输入一行多个数字

a = list(map(int,input().split()))

1.3 输入两个字符,以空格分开,分别赋值

n,m = list(map(int,input().split()))
print("n=",n," m="m)
input:
2 3
output:
n= 2  m= 3

1.4 输入1行字符,以空格分开,赋值给列表

m = input.split(' ') #可以读取空格
m= (list(map(str,input().split())))  #删除空格

1.5 输入n行,每行m个字符,以list存储

w = []
for i in range(n):
    w.append(list(map(int, input().split())))
print(w)
input:
0 0 4 4
1 1 5 5
2 2 6 6
output:
[[0, 0, 4, 4], [1, 1, 5, 5], [2, 2, 6, 6]]

二、数据的创建,转化,排序

2.1 set 容器

去掉相同的数 , 并按从小到大排序

a = list(map(int, input().split()))
b = list(set(a))
print(b)
input:
10 1 10 20 30 20 8 9 8
output:
[1, 8, 9, 10, 20, 30]

2.2 zip 函数

a = [1, 2, 3]
b = [4, 5, 6]
zipped = zip(a, b)
print(list(zipped))
output:
[(1, 4), (2, 5), (3, 6)]

2.3 map 函数

map() 会根据提供的函数对指定序列做映射。
map(function, iterable, …)

  • function – 函数
  • iterable – 一个或多个序列
a = [1, 2, 3, -1]
b = map(abs, a)
print(list(b))
[1, 2, 3, 1]

2.3 dict 函数

详细描述见链接: link.

a = [1, 2, 3]
b = [4, 5, 6]
s = dict(zip(b, a))
print(s)
output:
{4: 1, 5: 2, 6: 3}

2.4 sorted 排序

2.4.1 按某一参数排序

顺序为是从小到大,逆序可用reverse=True

d= {'lilee':25, 'age':24, 'phone':12}
d1 = sorted(d.items(), key=lambda item:item[1])
print(d1)
output:
[('phone', 12), ('age', 24), ('lilee', 25)]
[('lilee', 25), ('age', 24), ('phone', 12)]

2.4.2 按多个参数排序

注意当参数的排序不一致时,用加**-**使其一致

a = {'12':25, '23':24, '14':12}
a = sorted(a.items(), key=lambda x: (x[0], -x[1]))
print(a)
output:
[('12', 25), ('14', 12), ('23', 24)]

2.5 sort排序

mylist = [8,5,6,10]
mylist.sort()
print(mylist)  #[5, 6, 8, 10]
mylist.sort(reverse=True) #[10, 8, 6, 5]
print(mylist) 

2.5.1 按某一元素排序

mylist = [(2, 2), (3, 4), (4, 1), (1, 3)]
# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
mylist.sort(key = takeSecond)
print(mylist)

2.6 将两个列表合并

l1 = list([1, 2, 3, 4])
l2 = list([5, 6, 7, 8])
com1 = [list(t) for t in zip(l1,l2)]
com2= [l1] + [l2]
print(com1)
print(com2)
output:
[[1, 5], [2, 6], [3, 7], [4, 8]]
[[1, 2, 3, 4], [5, 6, 7, 8]]

2.7 列表的转置

无法直接取二维列表的某一列,要么将其转化为numpy,要么将其进行转置

def transformMatrix(m):
    # 逆向参数收集,将矩阵中多个列表转换成多个参数,传给 zip
    return list(zip(*m))
alist = [[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
blist = [[1,2,8,9],[2,4,9,12],[4,7,10,13]]
print(transformMatrix(alist))
print(transformMatrix(blist))
output:
[(1, 2, 4, 6), (2, 4, 7, 8), (8, 9, 10, 11), (9, 12, 13, 15)]
[(1, 2, 4), (2, 4, 7), (8, 9, 10), (9, 12, 13)]

2.8 创建为0的数据

#一维
list1  = [0 for i in range(4)]   #[0, 0, 0, 0]
#二维
list2 = [[0]*2 for i in range(3)]  #[[0, 0], [0, 0], [0, 0]]

2.9 ASCII码

数字0~9在ascii表里的编码范围是48~57
小写字母在ascii表里的编码范围是97~122
大写字母在ascii表里的编码范围是65~90

三、数据的遍历和索引

3.1 enumerate的用法

  • enumerate()是python的内置函数
  • enumerate在字典上是枚举、列举的意思
  • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
  • enumerate多用于在for循环中得到计数

例如对于一个seq,得到:

if __name__ == '__main__':
    list = [(1, 1), (2, 2), (3, 3), (4, 4)]
    for i, j in enumerate(list):
        print(i, j)
    for i, (x, y) in enumerate(list):
        print(i, ": ", x, y)
output:
0 (1, 1)
1 (2, 2)
2 (3, 3)
3 (4, 4)
0 :  1 1
1 :  2 2
2 :  3 3
3 :  4 4

3.2 for循环

3.2.1 从后往前

lists = [0, 1, 2, 3, 4, 5]
# 输出 5, 4, 3, 2, 1, 0
for i in range(5, -1, -1):
    print(lists[i])

3.2.2 for _ in range(n):

只在乎循环的次数

for _ in range(2):
    print("count1")
output:
count1
count1

3.3 遍历字典

Star = ['Eason', 'Billie', 'Sia', 'Morty']
Flag = [10, 8, 24, 0]
info = dict(zip(Star,Flag))
#第一种方法
for k, v in info.items():
    print(k, v)
#第二种方法
for key in info:
       print(key+':'+info[key])

3.4 列表的索引

若数据不在列表中会报错,因此要加上前提条件

mylist = [1,2,3,4,5]
num = 3
if num in mylist:
	pos = mylist.index(num)
print(pos)
output:
2

四、输出

4.1 带空格输出

print(number, end=' ')  #输出带空格

4.2 join函数去除格式

lists=['I','love','China']
print(" ".join(lists))
output:
I love China

4.3 字典型列表格式化输出

a = {'12':25, '23':24, '14':12}
a = sorted(a.items(), key=lambda x: (x[0], -x[1]))
for i, j in a:
    print(str(i)+' '+str(j))
output;
12 25
14 12
23 24

4.4 列表倒序输出

a = [1,2,3,4,5]
b = a[::-1]
print(b) #[5, 4, 3, 2, 1]
a.reverse()
print(a)[5, 4, 3, 2, 1]

4.5 列表不带格式输出

ss = [[1,2],[3,4],[5,6]]
for i in range(len(ss)):
    print("%s %s"%(ss[i][0],ss[i][1]))
output;
1 2
3 4
5 6

4.6 列表解包输出

 num = ['243']
 print(int(*num))  #243

五、各种数据的检查

5.1 判断TreeNode是否为空

#TreeNode形式
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
 #用is None判断
 if l1 is None:
 #用 not判断
 if not t2

5.2 空列表空串检查

if not strs:
	return ""

5.3 字符串空格检查

if s.isspace():  #由空格组成
	return 0

最后

以上就是激昂蛋挞最近收集整理的关于python:外部数据的输入,转化,遍历,输出的全部内容,更多相关python:外部数据内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部