[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] Python脚本交换两个变量的值不用中间变量真是方便

>>> x, y = 1, 2
>>> x
1
>>> y
2
>>> y, x = x, y
>>> x
2
>>> y
1

昨晚看了下pyhon,不懂好学不。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 2# cjiabing


我也刚学,还没有遇到什么困难。

TOP

回复 3# Python


    对自然语言处理怎么样?
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 4# cjiabing


不知道什么是自然语言

TOP

py的批量赋值很方便。

TOP

回复 6# applba


是的。书上还说建议使用括号,提高可读性。
>>> (x, y) = (1, 2)
>>> x
1
>>> y
2

TOP

自然语言处理_百度百科
http://baike.baidu.com/view/18784.htm
请用python对下面的语句进行分词:
  1. 工信处女干事每月经过下属科室都要亲口交代二十四口交换机等技术性器件的安装工作
复制代码
分词的结果应该符号人类的理解,比如“华为二十四口交换机”的分词结果应该是“华为-二十四口-交换机”而非“华为-二十四——口交——换机”

中文搜索目前的搜索技术都是建立在字母文字的索引技术基础上的,中文不是字母文字。因此,关键词技术 虽然在现代的白话文中有效,但分词技术依然非常初级。就像“二十四口交换机”可以分出“口交”这样的词非常滑稽一样。分词技术不仅关乎搜索结果, 内容检索的准确性,更关乎到知识库的建立方式,以及建设效率。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 8# cjiabing


感觉这个是跟算法相关的,跟具体的实现语言关系不是很大。
只要有算法,用什么来实现都无所谓(当然越底层的语言执行效率越高)。

TOP

回复 1# Python


    其他语言也可以不用中间变量交换两个值
  1. x=x+y
  2. y=x-y
  3. x=x-y
复制代码

TOP

回复 10# ivor


此贴的重点在于“真是方便”这四个字

TOP

本帖最后由 neorobin 于 2012-4-3 14:07 编辑

支持位运算的语言都可以用 3 次异或交换两个变量的数值, 也不用中间变量
cmd 示例:
  1. set /a "x^=y, y^=x, x^=y"
复制代码
刚看了下 Python, 这样应该可以:
  1. a^=b;b^=a;a^=b
复制代码

TOP

回复 9# Python

自然语言和计算机语言相比存在太多上下文相关性, 歧义性, 想用现有的技术让机器来理解人类语言还是太难, 打个比方, 现在再好的算法也顶多相当于一个婴儿对语言的能力.
不考虑机器对数据的海量处理能力, 其语言理解能力连一个 3 岁的幼儿也比不上.

TOP

回复 12# neorobin


甭管加减乘除等各种运算(先不说值为0的情况)、甚至汇编里面的各种寄存器,这些交换的方法显然没有Python这么简明,哈哈。

TOP

回复 13# neorobin


我对这个没有任何兴趣,也许你该和4楼的朋友聊一聊。

TOP

返回列表