简单的文件读取

问题

  1. 读取string.txt文件,并将其中的所有数字、字母分别存在不同列表中,并分别按逆序排序并拼接为字符串,保存在num.txt和apl.txt文件中
  2. 导入num.py文件中的num_list列表,共有一千个随机数,将其分均匀为十个列表,每个列表分别根据绝对值逆序排序,找到绝对值总和最大的列表与最小的列表,将这两个列表存在一个列表中,并输出。

 你需要如下排列:

main1:第一题

#1.	读取string.txt文件,并将其中的所有数字、字母分别存在不同列表中,
#   并分别按逆序排序并拼接为字符串,保存在num.txt和apl.txt文件中
with open("string.txt","r") as f:
    data=f.read()
c=[]
d=[]
for a in data:
    if a.isalpha():
        c.append(a)
    if a.isdigit():
        d.append(a)
c.sort(reverse=True)
d.sort(reverse=True)
# print(c,d)
e=''.join(c)
h=''.join(d)
# print(e,h)
with open("num.txt","w") as f:
    f.write(h)
with open("apl.txt","w") as f:
    f.write(e)

main:第二题

#2.	导入num.py文件中的num_list列表,共有一千个随机数,将其分均匀为十个列表,
# 每个列表分别根据绝对值逆序排序,找到绝对值总和最大的列表与最小的列表,
# 将这两个列表存在一个列表中,并输出。
#1000分10个,一个100个
import operator

import num
n=num.num_list
# print(n)
a1=[]
c=0
d=[]
for i in range(10):
    a1.append(n[c:c+100])
    a1[i].sort(reverse=True)
    d.append(sum(a1[i]))
    c+=100
# print(a1)
# print(d)
min_index,min_num=min(enumerate(d),key=operator.itemgetter(1))
max_index,max_num=max(enumerate(d),key=operator.itemgetter(1))

# print(min_index,min_num,
# max_index,max_num)
e=[]
e.append(a1[min_index])
e.append(a1[max_index])
print(e)

提供的num.py文件

num_list = [6341, 1989, 7227, 4022, 9251, 5008, 5036, 4172, 9921, 8151, 8901, 3818, 6128, 8742, 6439, 6399, 5617, 6996,
            4234, 959, 8162, 4198, 6583, 3664, 9243, 3037, 5383, 6367, 1480, 6235, 4003, 2659, 9317, 4506, 9926, 3804,
            9555, 8370, 2569, 9806, 9226, 8670, 4124, 8710, 2519, 5017, 4322, 7795, 1191, 7061, 9448, 6378, 7654, 723,
            4305, 8188, 2378, 7842, 1854, 3991, 8304, 1716, 7668, 43, 5177, 345, 2738, 9902, 5919, 830, 4401, 2139,
            8668, 1927, 8593, 1055, 893, 9805, 7436, 3834, 4302, 2253, 9803, 8427, 5187, 4438, 5805, 5419, 3598, 3234,
            6716, 8754, 6854, 2321, 915, 5625, 6933, 4442, 6240, 9661, 1593, 5803, 5319, 6610, 3545, 9552, 5934, 8273,
            8218, 2527, 6616, 6954, 9479, 8190, 2201, 7624, 240, 182, 8500, 2069, 12, 8706, 478, 5366, 6389, 7560, 6511,
            469, 1411, 421, 9707, 2643, 6441, 5476, 8079, 6217, 2682, 4480, 7238, 9016, 682, 6477, 1062, 2602, 9450,
            7987, 7821, 8929, 4400, 1527, 2341, 1817, 8746, 7162, 2099, 3224, 4070, 7075, 9020, 5754, 1431, 3898, 8430,
            9619, 3848, 557, 3073, 6403, 1792, 5371, 4578, 3408, 2382, 5281, 6150, 6038, 6106, 8204, 7980, 379, 6074,
            3941, 9524, 1702, 3321, 7613, 8952, 4322, 9446, 2029, 3647, 2792, 2038, 2473, 6963, 5583, 583, 2794, 4958,
            3366, 2385, 633, 1984, 3827, 2631, 7403, 4241, 3159, 5893, 1244, 632, 3290, 4686, 1773, 7650, 2531, 8685,
            2191, 7550, 7289, 9612, 9528, 2101, 5763, 2309, 2806, 1019, 4311, 2107, 8947, 6002, 7171, 6552, 3780, 4564,
            2073, 8800, 1279, 8914, 8112, 8405, 3521, 122, 5448, 4722, 9402, 6532, 2713, 3805, 6150, 2187, 8059, 7654,
            6097, 8128, 9766, 5443, 4160, 3037, 6880, 195, 5905, 5215, 9244, 167, 5782, 5164, 6324, 4904, 1843, 8546,
            7029, 6823, 7429, 5373, 1586, 3882, 9226, 831, 8555, 9293, 6181, 1047, 7906, 4894, 3217, 9881, 3497, 1959,
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值