【问题标题】:C to python code conversionC到python代码转换
【发布时间】:2013-10-28 15:06:28
【问题描述】:

我正在做从 C 到 python 的代码转换... 我有一个 char 数组并用作字符串缓冲区

 char str[25]; int i=0;

 str[i]='\0';

这里 i 会取不同的值,甚至 str[i] 也有不同的值

我想要python中的等效代码...就像一个字符串缓冲区,我可以在其中存储n个编辑字符串内容。我什至尝试使用列表,但效率不高,还有其他出路吗? Python中有任何字符串缓冲区吗?如果是这样,我该如何根据这些使用它?

【问题讨论】:

  • str[i] = '\0'; 在 python 中是不可能的,因为字符串在 Python 中是不可变的对象。还要记住 str 是 Python 中的一个类型
  • @GrijeshChauhan:是的,我知道,所以没有别的办法了吗??
  • “我什至尝试过使用列表,但效率不高”您是如何确定的?
  • @Puneeth Mark 建议 bytearray 数组我不知道,搜索 Read also Mutable strings in Python 看看 MutableString

标签: c python-3.x


【解决方案1】:

使用bytearray 在 Python 中存储可变的字节数据列表:

s = bytearray(b'My string')
print(s)
s[3] = ord('f')  # bytes are data not characters, so get byte value
print(s)
print(s.decode('ascii')) # To display as string

输出:

bytearray(b'My string')
bytearray(b'My ftring')
My ftring

如果您需要对 Unicode 字符串数据进行变异,那么list 是可行的方法:

s = list('My string')
s[3] = 'f'
print(''.join(s))

输出:

My ftring

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    相关资源
    最近更新 更多