用python检索汉字的坑点,python找字

本文目录一览:

紧急求助,python中的字典使用汉字作为key,访问出错

这个是编码的问题,python中汉字是能作为key的,你使用同一种编码, 你看这不是好好的么!尽量不要用汉字作为key

python 根据gb2312区位码查找汉字

你给的问题不是很详细,所以我只能给你举个简单的例子,如下:

首先要使得脚本的汉字使用gb2312编码,然后在字符串中进行搜索,脚本如下:

# -*- coding: gb2312 -*-

findStr=’哈哈我不在家’

print findStr.find(‘在’)

如何查找Python中的关键字

1、用python这么久就没遇到过需要查找其关键字的时候,就那么点关键字看几遍后,基本都不会忘啦。而且写程序时,不管你用的是vim、gedit还是pycharm,遇到关键字都会变颜色提醒的呀。

2、交互模式下,试过可行的:

import __builtin__

dir(__builtin__)

help(__builtin__)

python 字典的问题?

题主你好,

写在前面: 我先给题主举个例子, 我先定义一个字典:

dict03 = {1:3, 5:7}

可以看出上面这个字典有两个元素, 此时我们使用dict03.values()得到的结果为:

dict_values([3,7])

从上面这个结果可以看出, 字典的values方法,会将字典中的所有键值对的值生成一个列表, 作为dict_values()参数,并返回.

—–

上面没有讲到重点,只是作了一个引, 下面看到底问题出在哪了.

题主定义的dict03={0:[1,3,5,7]}, 这个字典, 其实只有一个键值对, 键是整数0,值是列表[1,3,5,7], 所以此时dict03.value()返回的值为  dict_values([[1,3,5,7]]), 重点就在这里, 注意,返回的是:

dict_values( [[ 1,3,5,7 ]] )

而不是

dict_values( [ 1,3,5,7 ] )

抛开前面这个dict_values, 也就是返回的是:

[[1,3,5,7]] 而不是 [1,3,5,7]

前者是含有一个元素的列表, 只不过这个元素本身也是一个列表;

后者是含有4个元素的列表, 每个元素都是整型数字;

而 x in y 这种形式中, 是看x是否存在于y中,

拿题主的代码来说, 其实 i in dict03.values() 翻译过来是:

5 in [[1,3,5,7]], 因为[[1,3,5,7]]这个列表就一个元素,为[1,3,5,7],所以5并不在[[1,3,5,7]]中,

如果翻译过来是:

5 in [1,3,5,7],那么我们得到的结果肯定是True, 因为[1,3,5,7]中有4个元素,而5恰在其中.

所以解决方法也就有了, 想办法去掉[[1,3,5,7]]最外层的[].

代码及测试截图如下:

上图中, 第一个红框是将dict_values([[1,3,5,7]])转换成 [[1,3,5,7]];

第二个红框是将[[1,3,5,7]]转换成[1,3,5,7];

此时最后一句print(5 in [1,3,5,7]) 也就得到了我们想要的结果True了.

—–

希望可以帮到题主, 欢迎追问.

python 无法显示汉字

实际上,这段代码所出现的问题和cPickle模块没什么关系。而是Python 2显示中文“乱码”的问题。

Python 2中,str是8-bit string sequence(有点像Python 3中的bytes)。而Python 3中str就相当于Python 2中的unicode。

所以,

 a = ‘上海’

 repr(a)

“‘\\xc9\\xcf\\xba\\xa3′”

 a # a中存储的8字节转义字符序列

‘\xc9\xcf\xba\xa3’

 print a # 输出a,在此过程中,会对a进行解码操作,然后输出

上海

上例中,可以看到:

a = ‘上海’

a中实际存储的是:

‘\xc9\xcf\xba\xa3’

这样一个字节序列。它实际上是对’上海’这个unicode字符串按gbk/cp936/gb18030编码得到的(和简体中文Windows操作系统的默认编码有关)。

给你推荐一篇博客:

下面是我写的示例:

# _*_ coding: gbk _*_

# Test with Python 2.7, Python 3.3 on Windows XP

try:

    import cPickle as p

except:

    import pickle as p

address_file = ‘address.txt’

class Human(object):

    def __init__(self, address):

        self.address = address

    def txl(self):

        af = {‘address’: self.address}

        print(af)

        print(af[‘address’])

        f = open(address_file, ‘wb’) # In python 3, use binary mode.

        # In python 2.7, default protocol is 0.

        # However, it is 3 in python 3.3.

        p.dump(af, f, 0)

        f.close()

address = ‘上海’

print(address)

dq = Human(address)

dq.txl()

af = open(address_file, ‘rb’) #

print(p.load(af))

af.close()

“””

Output

—————————————-

Python 2.7.6:

1. # -*- coding: utf-8 -*-

涓婃捣

{‘address’: ‘\xe4\xb8\x8a\xe6\xb5\xb7’}

涓婃捣

{‘address’: ‘\xe4\xb8\x8a\xe6\xb5\xb7’}

2. # -*- coding: gbk -*- or # _*_ coding: cp936 _*_

上海

{‘address’: ‘\xc9\xcf\xba\xa3’}

上海

{‘address’: ‘\xc9\xcf\xba\xa3’}

Python 3.3.3:

上海

{‘address’: ‘上海’}

上海

{‘address’: ‘上海’}

——————————————

In Python 3.3.3:

 ‘上海’.encode(‘utf-8’)

b’\xe4\xb8\x8a\xe6\xb5\xb7′

 _.decode(‘cp936’)

‘涓婃捣’

“””

从这个示例中可以看出,虽然把字典整个print出来不能正常解析address中的内容:

 addr = {‘addr’: ‘上海’}

 addr

{‘addr’: ‘\xc9\xcf\xba\xa3’}

 print addr

{‘addr’: ‘\xc9\xcf\xba\xa3’}

但是单独打印:

 addr[‘addr’]

‘\xc9\xcf\xba\xa3’

 print addr[‘addr’] # print 输出之前隐含了编码解码操作,但为何打印整个字典时输出不正常尚待研究

上海

一切OK。

所以,如果真的用Python 2的话,对于该问题可以考虑手工负责编码、解码操作(如果使用print单独打印地址信息,就不用这么麻烦了,因为这些事它帮你做了)。用Python3,就没这么多问题了。

最后补充一点,pickle模块只是提供了一种序列化Python对象的方法。所以序列化生成的文件中和想象的不一样也不足为奇。正如自由de王国所说的,只要序列化后还能够反序列化成功就行了。实际上,当protocol不是0的情况下,序列化生成的文件是二进制格式的,根本没法用记事本直接看。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/240141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-12 12:20
下一篇 2024-12-12 12:20

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29

发表回复

登录后才能评论