python-矩阵转置/将列表分割成块/和超过N的最短子数组

news/2024/12/22 0:23:46/

一:矩阵转置
题目描述

输入一个 n 行 m 列的矩阵 A,输出它的转置 AT。
输入
第一行包含两个整数 n 和 m,表示矩阵 A 的行数和列数。1≤n≤100,1≤m≤100。接下来 n 行,每行 m 个整数,表示矩阵 A 的元素。相邻两个整数之间用单个空格隔开,每个元素均在 1∼1000 之间。
输出
m 行,每行 n 个整数,为矩阵 A 的转置。相邻两个整数之间用单个空格隔开。
样例输入1
3 3
1 2 3
4 5 6
7 8 9

样例输出1
1 4 7
2 5 8
3 6 9

来源/分类(难度系数:三星)
每日一题 数组


完整代码展示:
# coding=utf-8
a,b=map(int,input().split())
c=[]
for i in range(a):
      d=list(map(int,input().split()))
      c.append(d)
e=0
while e<b:
       sum=''
       for j in range(0,a):
             sum+="{} ".format(c[j][e])
       print(sum)
       e+=1

python"># coding=utf-8
a,b=map(int,input().split())
c=[]
for i in range(a):d=list(map(int,input().split()))c.append(d)
e=0
while e<b:sum=''for j in range(0,a):sum+="{} ".format(c[j][e])print(sum)e+=1


代码解释:
“a,b=map(int,input().split()) ”,导入用户输入的矩阵行数a和列数b。
“c=[]
 for i in range(a):
       d=list(map(int,input().split()))
       c.append(d)                             ”,建立一个空列表c,接着循环a次:让用户输入矩阵一行的元素并将其储存在列表d中,再将d添加进c中。
“e=0
 while e<b:
        sum=''
        for j in range(0,a):
              sum+="{} ".format(c[j][e])
        print(sum)
        e+=1                                        ”,令e为循环密码子,初始值为0,当e<b时:建立一个空字符串sum,接着依次遍历0~a-1的数字,sum连接元素c[j][e],每两个元素之间插入一个空格。最后打印sum的值。每循环一次,e+1,直至e==b,跳出整个while循环。


运行效果展示:

3301cbb5a03649a6b71458fba4adf28b.jpg

aff6e2baf6684d8b8be2418b62bc6f97.jpg 

 

 

 

 

二:将列表分割成块
题目描述

编写一个程序,将一个数字列表按照指定大小分割成特定大小的块。
定义函数list_into_chunks()的函数,有两个参数num_list和chunk_size。
在函数内,将num_list分割成大小为chunk_size的子列表。
将这些子列表作为列表返回。
示例输入
1 2 3 4 5 2
示例输出
[[1, 2], [3, 4], [5]]
解释: 由于测试输入具有奇数个元素,而我们需要创建一个2(偶数)的块大小,剩余的元素将创建一个单元素子列表,即[5]。
输入会包含两行,第一行包含数字并已转为列表,第二行包含块大小。
考虑块大小chunk_size为偶数或奇数的情况。
来源/分类(难度系数:二星)
矩阵 数组


完整代码展示:
a=list(map(int,input().split()))
b=int(input())
c=[]
d=len(a)//b
e=0
for i in range(d):
      c.append(a[e:e+b])
      e+=b
c.append(a[e::])
f=[]
for i in range(0,len(c)):
      if len(c[i])!=0:
          f.append(c[i])
print(f)

python">a=list(map(int,input().split()))
b=int(input())
c=[]
d=len(a)//b
e=0
for i in range(d):c.append(a[e:e+b])e+=b
c.append(a[e::])
f=[]
for i in range(0,len(c)):if len(c[i])!=0:f.append(c[i])
print(f)


代码解释:
“a=list(map(int,input().split())) ”,导入用户输入的待处理数字并将其储存在列表a中。
“b=int(input()) ”,导入用户输入的数字列表需分割成的长度b。
“d=len(a)//b
 e=0
 for i in range(d):
       c.append(a[e:e+b])
       e+=b                       ”,令d等于列表a的长度除以b并保留整数部分。令e为循环密码子,依次遍历0~d-1的数字,将a中a[e:e+b]的部分添加进c中。每循环一次,e+b。
“c.append(a[e::])
 f=[]
 for i in range(0,len(c)):
       if len(c[i])!=0:
           f.append(c[i])    ”,将a中的余下部分添加进c中。建立一个空列表f,接着遍历c中元素,判断该元素是否为空:如果不为空,则将该元素添加进f中。
“print(f) ”,打印f的最终结果。


运行效果展示:

51afd215897c4463bf99fff5b2bef3ac.jpg

058117084ca64aa48354372811063d5f.jpg 

 

 

 

 

三:和超过N的最短子数组
题目描述

编写一个程序,找出所有元素之和严格超过给定值的最短连续子列表的长度。
定义函数shortest_sublist_exceeds_n(),它接受两个参数 - 一个整数列表lst和一个整数n。
该函数应返和严格大于n的最短子列表的长度。
如果不存在这样的子列表,函数应返回 -1。
示例输入
-1 2 3 4 7 1122
示例输出
4
解释: [-1, 2, 3, 4, 7, 11]的和超过22的最短子列表是[3, 4, 7, 11],所以输出4
两个for循环计算所有子列表的和,然后找到和大于n的最短子列表。
此处子列表是连续的,因此可以使用滑动窗口技术。
来源/分类(难度系数:一星)
数组 循环结构


完整代码展示:
a=list(map(int,input().split()))
b=int(input())
c=[]
for i in range(0,len(a)):
      if a[i]>=0:
           c.append(a[i])
c.sort(reverse=True)
if sum(c)<b:
     print(-1)
else:
       d=0
       sum=0
       while sum<=b:
              sum+=c[d]
              d+=1
       print(d)

python">a=list(map(int,input().split()))
b=int(input())
c=[]
for i in range(0,len(a)):if a[i]>=0:c.append(a[i])
c.sort(reverse=True)
if sum(c)<b:print(-1)
else:d=0sum=0while sum<=b:sum+=c[d]d+=1print(d)


代码解释:
“a=list(map(int,input().split())) ”,导入用户输入的数组元素并将其储存在列表a中。
“b=int(input()) ”,导入用户输入的定值b。
“c=[]
 for i in range(0,len(a)):
       if a[i]>=0:
            c.append(a[i])
 c.sort(reverse=True)  ”,建立一个空列表c,接着依次遍历a中元素,判断a[i]是否大于等于0:如果是,则将a[i]添加进c中。最后对c中元素进行升序排序。
“if sum(c)<b:
       print(-1)
 else:
        d=0
        sum=0
        while sum<=b:
               sum+=c[d]
               d+=1
        print(d)           ”,判断c中元素之和是否小于b:如果是,则打印-1,否则令d为循环密码子,sum为元素和,当sum<=b时:sum+c[d]。每循环一次,d+1,直至sum>b,跳出整个while循环。


运行效果展示:

4b46b787be8f4e2398525f657274c3ae.jpg

 a82136d9a1694d68bb12fefc0dd9ffcd.jpg

              (声明:以上内容均为原创)

 

 

 


http://www.ppmy.cn/news/1534063.html

相关文章

C语言-进程控制编程

1、 进程的基本概念 进程的分类 交互进程 批处理进程 守护进程&#xff1a;一般在后台运行&#xff0c;一般由操作系统在开机时通过脚本自动激活启动或由超级管理用户root来启动 进程的属性 进程ID&#xff1a;进程的唯一数值&#xff0c;用来区分进程 启动…

RabbitMQ高级特性-发送方确认

对于发送方发送消息到RabbitMQ的可靠性机制 引入:在持久化的消息正确存⼊RabbitMQ之后,还需要有⼀段时间(虽然很短,但是不可忽视)才能存⼊磁盘中.RabbitMQ并不会为每条消息都进⾏同步存盘(调⽤内核的fsync⽅法)的处理, 可能仅仅保存到操作系统缓存之中⽽不是物理磁盘之中. 如…

Redis-主从复制

分布式系统,涉及到一个非常关键的问题:单点问题 如果某个服务器程序,只有一个节点,就会出现: 可用性问题(这个服务器挂了,服务中断)性能/支持的并发量有限 引入分布式系统,主要也是为了解决上述的单点问题 在分布式系统中,希望有多个服务器来部署redis服务,从而构成一个red…

【JAVA开源】基于Vue和SpringBoot的校园资料分享平台

本文项目编号 T 059 &#xff0c;文末自助获取源码 \color{red}{T059&#xff0c;文末自助获取源码} T059&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

游戏如何对抗改包

游戏改包是指通过逆向分析手段及修改工具&#xff0c;来篡改游戏包内正常的设定和规则的行为&#xff0c;游戏包被篡改后&#xff0c;会被植入/剔除模块进行重打包。 本期图文我们将通过实际案例分析游戏改包的原理&#xff0c;并分享游戏如何应对改包问题。 安卓平台常见的改…

django创建一个新的应用

使用 python manage.py startapp myapp 命令可以在你的 Django 项目中创建一个新的应用&#xff0c;名为 myapp。应用是 Django 项目的组成部分&#xff0c;可以帮助你组织代码和功能。执行该命令后&#xff0c;会在你的项目目录下创建一个名为 myapp 的文件夹&#xff0c;包含…

【AIGC】内容创作——AI文字、图像、音频和视频的创作流程

我的主页&#xff1a;2的n次方_ 近年来&#xff0c;生成式人工智能&#xff08;AIGC&#xff0c;Artificial Intelligence Generated Content&#xff09;技术迅速发展&#xff0c;彻底改变了内容创作的各个领域。无论是文字、图像、音频&#xff0c;还是视频&#xff0c;A…

JSON字符串转换成Java集合对象

在Java中&#xff0c;将JSON字符串转换成Java集合对象通常涉及到使用JSON处理库&#xff0c;如Jackson或Google的Gson。以下是使用这两个库的示例&#xff1a; 使用Jackson 添加Jackson依赖&#xff1a;如果你使用Maven&#xff0c;可以在pom.xml文件中添加以下依赖&#xff1…