哈希和数据库

scores={}
result_f=open("results.txt")
for line in result_f:
    (name,score)=line.split()
    scores[score]=name
result_f.close()

print("The top scores were:")
for each_score in scores.keys():
    print(‘姓名:‘+scores[each_score]+‘分数:‘+each_score)

  

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
The top scores were:
姓名:Stacey分数:7.81
姓名:Aideen分数:8.05
姓名:Joseph分数:8.45
姓名:Johnny分数:8.65
姓名:Zack分数:7.12
姓名:Juan分数:9.12
姓名:Aaron分数:8.31
>>>

  加入排序方法:

scores={}
result_f=open("results.txt")
for line in result_f:
    (name,score)=line.split()
    scores[score]=name
result_f.close()

print("The top scores were:")
for each_score in sorted(scores.keys(),reverse=True):
    print(‘姓名:‘+scores[each_score]+‘分数:‘+each_score)

  

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
The top scores were:
姓名:Stacey分数:7.81
姓名:Aideen分数:8.05
姓名:Joseph分数:8.45
姓名:Johnny分数:8.65
姓名:Zack分数:7.12
姓名:Juan分数:9.12
姓名:Aaron分数:8.31
>>> ================================ RESTART ================================
>>>
The top scores were:
姓名:Juan分数:9.12
姓名:Johnny分数:8.65
姓名:Joseph分数:8.45
姓名:Aaron分数:8.31
姓名:Aideen分数:8.05
姓名:Stacey分数:7.81
姓名:Zack分数:7.12
>>>

  数据变复杂了:

line="101;Johnny ‘wave-boy‘ Jones;USA;8.65;Fish;21"

s={}

(s[‘id‘],s[‘name‘],s[‘country‘],s[‘average‘],s[‘board‘],s[‘age‘])=line.split(";")

print("ID:          "+s[‘id‘])
print("Name:        "+s[‘name‘])
print("Country:     "+s[‘country‘])
print("Average:     "+s[‘average‘])
print("Board type:  "+s[‘board‘])
print("Age:         "+s[‘age‘])

  

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
ID:          101
Name:        Johnny ‘wave-boy‘ Jones
Country:     USA
Average:     8.65
Board type:  Fish
Age:         21
>>>

  进一步改进:

def find_details(id2find):
    surfers_f=open("surfing_data.csv")
    for each_line in surfers_f:
        s={}
        (s[‘id‘],s[‘name‘],s[‘country‘],s[‘average‘],s[‘board‘],s[‘age‘])=each_line.split(";")
        if id2find==int(s[‘id‘]):
            surfers_f.close()
            return(s)
    surfers_f.close()
    return(s)

lookup_id=int(input("Enter the id of the surrfer:"))
surfer=find_details(lookup_id)
if surfer:
    print("ID:          "+surfer[‘id‘])
    print("Name:        "+surfer[‘name‘])
    print("Country:     "+surfer[‘country‘])
    print("Average:     "+surfer[‘average‘])
    print("Board type:  "+surfer[‘board‘])
    print("Age:         "+surfer[‘age‘])

  运行结果

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Enter the id of the surrfer:101
ID:          101
Name:        Johnny ‘wave-boy‘ Jones
Country:     USA
Average:     8.32
Board type:  Fish
Age:         21

>>> 202
202
>>>

  数据库

import sqlite3

def find_details(id2find):
    db=sqlite3.connect("surfersDB.sdb")
    db.row_factory=sqlite3.row
    cursor=db.cursor()
    cursor.execute("select * from surfers")
    rows=cursor.fetchall()
    for row in rows:
        if row[‘id‘]==id2find:
            s={}
            s[‘id‘]=str(row[‘id‘])
            s[‘name‘]=row[‘name‘]
            s[‘country‘]=row[‘country‘]
            s[‘average‘]=str(row[‘average‘])
            s[‘board‘]=row[‘board‘]
            s[‘age‘]=str(row[‘age‘])
            cursor.close()
            return(s)
        cursor.close()
        return({})

lookup_id=int(input("Enter the id of the surrfer:"))
surfer=find_details(lookup_id)
if surfer:
    print("ID:          "+surfer[‘id‘])
    print("Name:        "+surfer[‘name‘])
    print("Country:     "+surfer[‘country‘])
    print("Average:     "+surfer[‘average‘])
    print("Board type:  "+surfer[‘board‘])
    print("Age:         "+surfer[‘age‘])

  总结:

{}:一个空哈希

s.keys()   提供一个列表,包含名为“s”的哈希中所有的关键字。

s.itms()     提供一个列表,包含名为“s”的哈希中所有的关键字和值。

line.split(“,”)在每个逗号出现处分割包含在变量“line”中的字符串。

sorted()       一个内置函数,可以对很多数据结构排序。

数组:一个变量,有许多可以存放数据的有索引的空位。

链表:一个变量,数据在其中形成了一根链条,链条上的一个数据项指向另一个数据项,被指向的数据项又接着指向再下一个数据项,以此类推。

队列:一个变量,允许数据从集合的一端进入,从另一端离开,支持先进先出的机制。

哈希:一个变量,含有两列和(可能)多行的数据。

集合:一个变量,包含了,一个由一些独立数据项组成的集合。

多维数组:一个变量,可以用一个多维矩阵来包含数据(但是经常使用的维度只是2)

时间: 2024-07-30 09:48:02

哈希和数据库的相关文章

Git 基本概念

版本控制系统 (VCS) 版本控制系统 (VCS) 是软件,帮助软件开发人员携手合作,他们的工作并保持完整的历史. 以下是VCS目标 允许开发人员同步工作. 不要覆盖对方的变化. 维护历史的每一个版本. 以下是常见的VCS 集中式版本控制系统(CVCS) 分散式/分布式版本控制系统(DVCS) 在这个教程,我们将介绍集中分布式的版本控制系统,尤其是Git. Git 属于分布式版本控制系统. 分布式版本控制系统(DVCS) 集中式版本控制系统采用中央服务器上存储的所有文件和实现团队协作.但是CVC

建置 POSTFIX 服务器

建置 POSTFIX 服务器 postfix 是除了 sendmail 以外 ,最被广泛采用的 Linux 邮件服务器,一般使用的观感不外乎两点: 一.安全:垃圾信过滤机制较聪明,就算什么都没设定,也能滤掉许多 sendmail 挡不到的信. 二.简单:不需设定,服务器就能正常运作. 虽然以上谈的这两点特色,到底是好是坏还有许多争议,但 Postfix 对于邮件服务需求量不高的校园来说,可以说是一个很好的选择! 本文是假设您已经读过 Linux 进阶班讲义,因此对于 MUA.MTA.MDA.MS

Redis 哨兵模式与Redis集群

第1章 Redis哨兵模式: 1.1 sentinel的功能: 1.      监控,sentinel会不断的检查你的主服务器和从服务器是否运行正常 2.      提醒.当被监控的某个redis服务器出现问题时,sentinel可以通过API向管理员或者其他应用程序发送通知 3.      自动故障迁移 1.2 服务器连接: 1.2.1 sentinel通过用户配置的配置文件来发现主服务器 sentinel会与被监视的主服务器创建两个网络连接: 1.      命令连接用于向主服务器发送命令

Shiro权限管理

1.简介 Apache Shiro是Java的一个安全框架,对比Spring Security,没有Spring Security功能强大,但在实际工作时可能并不需要那么复杂,所以使用小而简单的Shiro就足够了. Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境. shiro满足的功能: Shiro可以帮助我们完成:认证.授权.会话管理.加密等,并且提供与web集成.缓存.rememberMed等功能. 2.Shiro的工作模型 应用程序直

XXS和SQL注入的预防

XSS:跨站脚本攻击XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的 常见的恶意字符XSS输入:1. XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框 攻击方式: 如在界面输入框恶意输入代码 <script>alert(document.cookie);</script> 如果希望将这个cookie发到自己的xss平台,可以构造如下输入: <script src=\"http://12

集合差集 哈希表 比较数据库中的图片和服务器上的图片,将服务器上的垃圾图片删除

SSH 框架下code: public String deleRubbishAd(){ int deleADcount = 0; rubbishADtp = configDao.rubbishADtp(); //数据库中的广告图片集合 Map<Object,Object> shujuku= new HashMap<Object,Object>(); File adfile = new File("C://Program Files//Apache Software Fou

laravel-- 在laravel操作redis数据库的数据类型(string、哈希、无序集合、list链表、有序集合)

安装redis和连接redis数据库 在controller头部引入 一.基本使用 1 public function RedisdDbOne() { 2 // 清空Redis数据库 3 Redis::flushall(); 4 5 6 // redis的string类型 7 Redis::set("laravel","Hello woshi laravel"); 8 dump(Redis::get("laravel")) ; 9 10 11 /

集差集 哈希表 比较数据库的照片和server画面上,将server垃圾上的图片删除

SSH 骨架code: public String deleRubbishAd(){ int deleADcount = 0; rubbishADtp = configDao.rubbishADtp(); //数据库中的广告图片集合 Map<Object,Object> shujuku= new HashMap<Object,Object>(); File adfile = new File("C://Program Files//Apache Software Foun

数据库介绍与分类

目录 数据库介绍与分类... 1 1.1 数据库介绍... 2 1.1.1什么是数据库... 2 1.2数据库的种类... 2 1.2.1关系型数据库介绍... 2 1.2.2非关系型数据库介绍... 3 1.3 常用关系型数据库产品介绍... 4 1.3.1 Oracle数据库... 4 1.3.2 MySQL数据库... 5 1.3.3 MariaDB数据库... 5 1.3.4 SqlServer数据库... 6 1.3.5 Access数据库... 6 1.3.6 其他不常用数据库...