Tag: python

生成器expression式与列表理解

什么时候应该使用生成器expression式,什么时候应该在Python中使用列表推导? # Generator expression (x*2 for x in range(256)) # List comprehension [x*2 for x in range(256)]

Python是否有一个string“包含”子string方法?

我在Python中寻找一个string.contains或string.indexof方法。 我想要做: if not somestring.contains("blah"): continue

如何摆脱Python中的多个循环?

鉴于下面的代码(这是行不通的): while True: #snip: print out current state while True: ok = get_input("Is this ok? (y/n)") if ok == "y" or ok == "Y": break 2 #this doesn't work 🙁 if ok == "n" or ok == "N": break #do more processing with menus and stuff 有没有办法做到这一点? 或者我有做一个检查打破input循环,然后另一个更有限的,检查外部循环打破了一起,如果用户满意? Edit-FYI: get_input是我写的一个简短的函数,它支持显示提示和默认值以及所有的stdin.readline().strip() ,并返回stdin.readline().strip()

不可变与可变types

我很困惑什么是不可变的types。 我知道float对象被认为是不可变的,从我的书中有这样的例子: class RoundFloat(float): def __new__(cls, val): return float.__new__(cls, round(val, 2)) 这被认为是不可变的,因为类结构/层次?,这意味着float是在类的顶部,并且是它自己的方法调用。 类似于这种types的例子(即使我的书说dict是可变的): class SortedKeyDict(dict): def __new__(cls, val): return dict.__new__(cls, val.clear()) 而在类中可变的方法有这样的例子: class SortedKeyDict_a(dict): def example(self): return self.keys() 另外,对于最后一个class(SortedKeyDict_a) ,如果我将这种types的集合传递给它: d = (('zheng-cai', 67), ('hui-jun', 68),('xin-yi', 2)) 不调用example方法,它将返回一个字典。 带有__new__的SortedKeyDict将__new__标记为错误。 我试着用__new__将整数传递给RoundFloat类,并且标记为没有错误。

如何使Python脚本独立可执行文件运行没有任何依赖?

我正在构build一个Python应用程序,不想强迫我的客户端安装Python和模块。 我也想让我的应用程序是封闭的。 那么,有没有办法将Python脚本编译为独立的可执行文件?

确定Python中文本的编码

我收到了一些编码的文本,但我不知道使用了什么字符集。 有没有一种方法来确定使用Python的文本文件的编码? 如何检测处理C# 的文本文件的编码/代码页 。

Python中的@staticmethod和@classmethod有什么区别?

用@staticmethod装饰的function和用@staticmethod装饰的function有@staticmethod @classmethod ?

Python中的最大recursion深度是多less,以及如何增加?

我有这个尾recursion函数: def fib(n, sum): if n < 1: return sum else: return fib(n-1, sum+n) c = 998 print(fib(c, 0)) 它工作到n = 997,然后它只是打破和吐出“比较RuntimeError超过最大recursion深度”。 这只是一个堆栈溢出? 有没有办法避开它?

如何处理Pandas中的SettingWithCopyWarning?

背景 我只是把我的pandas从0.11升级到了0.13.0rc1。 现在,应用程序正在popup很多新的警告。 其中之一是这样的: E:\FinReporter\FM_EXT.py:449: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_index,col_indexer] = value instead quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE 我想知道究竟是什么意思? 我需要改变一些东西吗? 如果我坚持使用quote_df['TVol'] = quote_df['TVol']/TVOL_SCALE应该如何暂停警告? 提供错误的function def _decode_stock_quote(list_of_150_stk_str): """decode the webpage and return dataframe""" from cStringIO import StringIO str_of_all = "".join(list_of_150_stk_str) quote_df = pd.read_csv(StringIO(str_of_all), […]

在Python中search并replace文件中的一行

我想遍历一个文本文件的内容,并进行search和replace一些行,并将结果写回到文件。 我可以先将整个文件加载到内存中,然后写回去,但这可能不是最好的方法。 在下面的代码中,执行此操作的最佳方法是什么? f = open(file) for line in f: if line.contains('foo'): newline = line.replace('foo', 'bar') # how to write this newline back to the file