范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

57个挑战(pythonjava)lesson42(2)

  在昨天题目基础上做挑战问题:
  在金额上增加一个$符号 和逗号。- 这个在展示函数上直接增加即可。以金额高低来做排序。重写程序,主要用csv 的解析库来实现解析效果。
  挑战2两个求解思路,
  方法1 : 建设2个字典,以Salary 为 key, 以First 和 Last 为value。 这样做排序的时候,先对Salary list 做排序, 然后基于这两个字典做查询即可。
  方法2: 把Salary 的 list 中的元素index 单独抽出来,在做排序的时候,记录原始index的最后位置,再根据这个位置在list 里寻找数据。--这个之前挑战已经做过了,有demo。
  方法3: 把这些内容存到数据库里,做一条查询即可,再做展示。
  挑战3的代码如下:
  python 版本:import csv class Parsedatafile:     originallist = []     firstcolumn = []     seconcolumn = []     thirdcolumn = []      def readdatafile(this):         # 从指定的文件中读取数据,并读入到一个列表中         filename = input("Please provde the name of the file from which you want open")         with open(filename, "r") as f:             reader = csv.reader(f)             for line in reader:                 this.originallist.append(line)             f.close()         print("this is the list we get from the file {0}".format(this.originallist))      def processlist(this):         # 对列表做格式化,并生成对应的三个队列         for i in this.originallist:             this.firstcolumn.append(i[0])             this.seconcolumn.append(i[1])             this.thirdcolumn.append(i[2])          print("This is the firstcolumn list: {0}".format(this.firstcolumn))         print("This is the secondcolumn list: {0}".format(this.seconcolumn))         print("This is the thirdcolumn list: {0}".format(this.thirdcolumn))      def displaylist(this):         # 对处理后的队列操作,逐行做展示         # 找到每个列表里面最宽的元素         col1length = 0         col2length = 0         col3length = 0         for i in this.firstcolumn:             if len(i) > col1length:                 col1length = len(i)         for i in this.seconcolumn:             if len(i) > col2length:                 col2length = len(i)         for i in this.thirdcolumn:             if len(i) > col3length:                 col3length = len(i)         space = " "         line1 = "Last" + space * (col1length - 4 + 1) + "First" + space * (col2length - 5 + 1) + "Salary" + space * (                     col3length - 6 + 1)         line2 = len(line1) * "-"         print(line1)         print(line2)         for i in range(0, len(this.firstcolumn)):             print(this.firstcolumn[i].ljust(col1length + 1), end="")             print(this.seconcolumn[i].ljust(col2length + 1), end="")             print(this.thirdcolumn[i])   lesson42 = Parsedatafile() lesson42.readdatafile() lesson42.processlist() lesson42.displaylist()
  python csv 函数的详细用法可以参考网文,
  https://blog.csdn.net/xietansheng/article/details/117604917
  这里主要是把每一行的数据解析成了一个队列。
  看到下面运行效果是一样的。
  Java 版本:
  使用csvReader来解析CSV 文件,效果类似,也是解析成了一个队列,从队列里面直接读取元素即可。
  import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.Buffer; import java.util.ArrayList; import java.util.Scanner; import com.opencsv.CSVReader;  public class ParseFilev2{     private ArrayList  originallist = new ArrayList<>();     private ArrayList  firstcolumn = new ArrayList<>();     private ArrayList  secondcolumn = new ArrayList<>();     private ArrayList  thirdcolumn = new ArrayList<>();     private Scanner sc = new Scanner(System.in);      void readdatafile(){         System.out.println("Please provde the name of the file from which you want open");         String filename = sc.nextLine();         try{             String[] nextLine;             CSVReader csvReader = new CSVReader(new FileReader(filename));             while((nextLine=csvReader.readNext())!= null)             {                 firstcolumn.add(nextLine[0]);                 secondcolumn.add(nextLine[1]);                 thirdcolumn.add(nextLine[2]);                 originallist.add(nextLine[0]+","+nextLine[1]+","+nextLine[2]);             }         }catch(IOException e){          }         System.out.println("This is the original list we get from the file"+ originallist.toString());     }     //从指定的文件中读取数据,并读入到一个列表中        void displaylist(){         //对处理后的队列操作,逐行做展示         //找到每个列表里面最宽的元素         int fcmlength = 0;         int scmlength = 0;         int tcmlength = 0;         for (int i = 0 ; i< firstcolumn.size();i++){             if (fcmlength< firstcolumn.get(i).length())             {fcmlength = firstcolumn.get(i).length();}             if (scmlength< secondcolumn.get(i).length())             {scmlength = secondcolumn.get(i).length();}             if (tcmlength< thirdcolumn.get(i).length())             {tcmlength = thirdcolumn.get(i).length();}         }         fcmlength = fcmlength + 1;         scmlength = scmlength + 1;         tcmlength = tcmlength + 1;         System.out.printf("%-"+fcmlength+"s","Last");         System.out.printf("%-"+scmlength+"s","First");         System.out.printf("%-"+tcmlength+"s ","Salary");         for(int j=0;j< fcmlength+scmlength+tcmlength;j++)         {             System.out.printf("-");         }         System.out.println();          for( int k =0 ;k < firstcolumn.size();k++)         {             System.out.printf("%-"+fcmlength+"s", firstcolumn.get(k));             System.out.printf("%-"+scmlength+"s", secondcolumn.get(k));             System.out.printf("%-"+tcmlength+"s", thirdcolumn.get(k));             System.out.println();         }         }      public static void main(String[] args)     {         ParseFilev2 lesson42 = new ParseFilev2();         lesson42.readdatafile();         lesson42.displaylist();     } }
  效果图:

美国日本女排双双出局!中国女排决战意大利女排争夺一个四强名额北京时间7月14日世界女排联赛总决赛四分之一决赛的较量继续进行,上半区已经确定两个名额分别是巴西女排和塞尔维亚女排,晚间下半区中国女排VS意大利女排土耳其女排VS泰国女排将会确定最巴黎蒙马特公墓红与黑的作者茶花女的作者2016年去法国之前,我和家里人说,我去巴黎有几个很想去看看的地方,闺女马上说你是不是想去看看雨果。确实除了卢浮宫巴黎圣母院埃菲尔铁塔等必打卡的地方,我想去追寻雨果追寻巴尔扎克大仲这个避暑胜地明月山旅游区,你千万别错过夏天是最适合登山避暑的时节那么这个避暑胜地明月山旅游区你可千万不能错过啊跟着我快来明月山畅玩一夏吧明月山是国家森林公园国家地质公园国家5A景区。明月山以奇峰险壑温泉飞瀑珍稀动物和禅旅游常备的6样东西,简单实用,带上会有不一样的体验如今,随着天气逐渐变热,很多人都会选择到凉爽的地区旅游,然而,旅游虽然是一件快乐的事情,但同样需要注意的地方也有很多。很多情况下,有没有带上这些物品,可能会直接影响到这次旅行的整场鉴往知来,跟着总书记学历史一座博物馆千年民族情七月的新疆,雪莲花开。深山夏牧场的羊道,承载着哈萨克牧民一年中最舒适丰饶的时光这边风景里的白杨,扎根于边疆乡村的风土人情大美新疆,是166万多平方公里的辽阔,也是56个民族像石榴籽满足市民多重愿望,冬奥公园5大热门打卡点全线开放想站上谷爱凌夺冠的滑雪大跳台回味冬奥精彩一刻吗?想从观景台近距离拍摄首钢大桥吗?在城市间尽赏湖光山色,在运动中体验冬奥之美,冬奥后重新开园的北京冬奥公园,可一站式满足市民的多重愿望记者维纳尔杜姆被推荐至罗马,球员将评估所有报价直播吧7月15日讯据记者SaberDesfarges透露,巴黎中场维纳尔杜姆被推荐至罗马,球员将评估所有报价。SaberDesfarges指出,维纳尔杜姆被推荐至罗马,这位31岁的确实瘦了!鹈鹕记者晒锡安现场观战球队夏季联赛照直播吧7月14日讯今日拉斯维加斯夏季联赛,鹈鹕对阵奇才。鹈鹕随队记者AndrewLopez赛间晒出一张锡安现场观战的照片。锡安前几日参加了某品牌活动,今日是他今夏首次现场为母队助威BR勇黑记者库里已多次联系杜兰特想提高五冠概率超詹姆斯直播吧7月14日讯据湾区记者KylenMills转述,BR资深作家RicBucher在自己的节目中透露库里正在招募杜兰特。RicBucher的原话为一位消息人士透露,库里已多次联系前男排队长被调侃胶东半岛第一巨亨,娶美女歌手,成文体结合典范很多运动员在退役之后,虽然告别了正式训练和比赛,但依然难舍他最热爱最擅长的运动项目。前中国男排队长仲为君也是一样,他日前晒出自己进行赛前热身及正式打比赛的照片,并发文人可真逗,以前伍兹与小麦ampampamp保罗劳列入选RampampampA名誉会员金熊获圣安德鲁斯荣誉市民直播吧7月14日讯泰格伍兹整个职业生涯都在圣安德鲁斯取得了巨大的成功,当地时间本周,他有望在高尔夫之家拿下个人的第四座英国公开赛冠军(第三个在老球场取得的冠军),在比赛开始之前,他
金铲铲之战版本最强C位诞生,阿卡丽无解机制搅动战局云顶手游金铲铲之战近日迎来了更新,新版本到来之后,之前一度非常强势的黑白魔发明家等等阵容都遭到了一轮削弱,目前来看这两套阵容在强度方面没有太大的变化,依然是最适合上分的选择。不过版面对战乱后的斯里兰卡,中国乒乓选手打出最温柔的一场比赛辜鸿铭说中国人有骨子里的温良,这不是温顺和懦弱,而是来源于同情的力量。这不仅体现在我们的日常生活中,即便在竞技体育中,有时也会看到这种力量,温柔而又强大。在2019年军运会上,乒乓知人善用,才是重建的关键如何保证球队在重建的过程中不会出错,最重要的就是一开始的建队方针是没有错误的。当然,这种思路有点痴人说梦。在没有验证之前,谁能保证自己的想法一定是正确的呢?没有人!所以很多球队就会南太平洋唯一的君主立宪制国家,汤加现状,带你看看真实的汤加1,汤加王国通称汤加,是一个位于太平洋西南部的岛屿国家。西距斐济650千米,西南距新西兰1770千米,面积约有748平方千米,人口约为10。8万人。1845年,汤加王国由多个岛屿联德约科维奇接连传坏消息,继被澳大利亚禁入后,法网或将再遭禁赛近日,德约科维奇被澳大利亚禁入的事件闹得沸沸扬扬,在网络上引起了巨大的讨论,现在德约科维奇已经无缘澳网,让人感到非常的遗憾,并且面临着3年无法进入澳大利亚的惩罚,职业生涯受到了很大太平洋岛国汤加好一个美丽的地方太平洋岛国汤加王国被称为友好群岛。汤加由多个群岛组成南部的Tongatapu和Eua,中部的Haapai群和北部的Vavau群,各有特色。再往北您会发现NiuaFoou和Niuat他是共和国同龄人,服役25年的老兵,72岁高龄环驾中国35000公里这是走吧网推送的第228个与众不同的旅者故事本期嘉宾陆德深陆德深,共和国的同龄人,曾在部队服役25年,2021年710月全程参加走吧网第三届(2021)环驾中国边境线梦之旅活动,成三国志11大浪淘沙全新特技闪亮登场,三国名将重回舞台中央三国志11作为一款经典策略游戏,从发行至今已经有十多年了,由于可塑性较高,这些年来不断有新鲜有趣的mod涌现出来。然而无论是经典的血色衣冠,还是后续增添了许多革新技术的真英雄系列,新时代的四大分卫,谁的成就会更高?四大分卫的名声是不是已经如雷贯耳?东艾西科南麦北卡,东艾变向强,西科得分狂,南麦秀天赋,北卡虐篮筐。00年代初,四大分卫的风头冠绝联盟,吸引了一大批粉丝。每个人都有自己的经典代表作创生之柱鹰状星云人马座矮椭球星系马头星云造真正的星星孩子哈勃望远镜拍过最著名且美丽的地理图片是位于老鹰星云里的创生之柱,它是一种神奇的天体,次要由气体和尘埃组成,外形犹如三根直立的柱子,又由于经过迷信家研讨它与新恒星的构成有关系,所以被帝都温泉好去处北京乐多港万豪酒店北京乐多港万豪酒店位于北京市昌平区乐多港假日广场中心位置,交通非常方便,紧邻京藏京新两条高速公路,开车仅40分钟车程。地理位置非常优越,周围有很多风景秀美的自然风景和文物古迹,比如