相关疑难解决方法(0)

将列表中的项连接到字符串

有没有更简单的方法将列表中的字符串项连接成一个字符串?

我可以使用该str.join()功能加入列表中的项目吗?

例如,这是输入['this','is','a','sentence'],这是所需的输出this-is-a-sentence

sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
    sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
Run Code Online (Sandbox Code Playgroud)

python string join list concatenation

478
推荐指数
7
解决办法
99万
查看次数

如何在Python中打印对象列表时应用__str__函数

那么这个交互式python控制台代码片段将告诉所有内容:

>>> class Test:
...     def __str__(self):
...         return 'asd'
...
>>> t = Test()
>>> print(t)
asd
>>> l = [Test(), Test(), Test()]
>>> print(l)
[__main__.Test instance at 0x00CBC1E8, __main__.Test instance at 0x00CBC260,
 __main__.Test instance at 0x00CBC238]
Run Code Online (Sandbox Code Playgroud)

基本上我想asd在打印列表时打印三个字符串.我也试过,pprint但它给出了相同的结果.

python printing string list object

30
推荐指数
2
解决办法
1万
查看次数

是否可以代理Python str并使连接工作?

我正在尝试实现一个懒惰评估的str类.我现在所拥有的就像是一样

class LazyString(object):

    __class__ = str

    def __init__(self, func):
        self._func = func

    def __str__(self):
        return self._func()
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,它可以正常工作(除了我的目的),除了一个str.join:

' '.join(['this', LazyString(lambda: 'works')])
Run Code Online (Sandbox Code Playgroud)

失败了

TypeError: sequence item 1: expected string, LazyString found
Run Code Online (Sandbox Code Playgroud)

经过一番探索后,似乎没有任何神奇的功能.join似乎在核心实现中是硬编码的,只有有限的内置类型的实例可以使它工作而不是实际的str.

那么我真的没有选择,或者还有其他我不知道的方式吗?

python

6
推荐指数
1
解决办法
402
查看次数

__str__输出"0x00E4F558处的实例"

这是我第一次在这个网站上寻求帮助.我在这里寻找答案,但没有什么能真正为我清除.

我正在努力学习Python.我在"课堂"一章.以下代码:

class Character:
    def __init__(self, name, initial_health):
        self.name = name
        self.health = initial_health
        self.inventory = []

    def __str__(self):
        s  = "Name: " + self.name
        s += "| Health: " + str(self.health)
        s += "| Inventory: " + str(self.inventory)
        return s

    def grab(self, item):
        self.inventory.append(item)

me = Character("vic", 37)
me.grab("pencil")
me.grab("paper")
print str(me)
Run Code Online (Sandbox Code Playgroud)

...生产:

Name: vic| Health: 37| Inventory: ['pencil', 'paper']
Run Code Online (Sandbox Code Playgroud)

但是下面的代码,在我看来非常相似,打印出内存位置而不是变量本身:

import random
SUITS = ['C', 'S', 'H', 'D']
RANKS = ['A', '2', '3', '4', '5', '6', '7', '8', …
Run Code Online (Sandbox Code Playgroud)

python string

4
推荐指数
1
解决办法
201
查看次数

标签 统计

python ×4

string ×3

list ×2

concatenation ×1

join ×1

object ×1

printing ×1