GVKun编程网logo

Python:使用vars()将字符串分配给变量(将python字符串作为变量名称)

6

对于Python:使用vars感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍将字符串分配给变量,并为您提供关于javascript–渲染Jbuilder模板并将字符串分配给gon、Php将多个

对于Python:使用vars感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍将字符串分配给变量,并为您提供关于javascript – 渲染Jbuilder模板并将字符串分配给gon、Php将多个字符串分配给单个变量、python – 如何动态调用类中的方法使用方法名分配给变量、Python 教程 (7)—— 一文弄懂 Python 字符串操作 (上)| 字符串查找 | 字符串分割 | 字符串拼接 | 字符串替换的有用信息。

本文目录一览:

Python:使用vars()将字符串分配给变量(将python字符串作为变量名称)

Python:使用vars()将字符串分配给变量(将python字符串作为变量名称)

我发现能够在运行时创建新变量并创建结果字典以供以后处理(即写入文件)非常有用。

myDict = {}
for i in range (1,10):
    temp = "variable"+str(i) 
    vars()[temp] = myFunctionThatReturnsData() # variable1= data1,variable2 = data2,etc.
    myDict[temp] = vars(temp)

这将创建字典条目[result1:data1],我可以使用myDict
[result1]对其进行调用。我一直在使用vars()而不真正了解我在做什么。我认为它vars()返回带有局部变量(?)的字典,并且

vars()[x] = y

创建一个新的[x:y]字典条目?

我有一个脚本,其中传递了一个用{input1:data1,input2:data2}准备的字典,并使用此方法遍历所有值,存储所有结果并将其输出到文件。这部分代码在类的函数内,并且可以正常工作。

我感到困惑的是,我读过各种文章,这些文章不应该弄乱locals(),以及vars()如何等效于locals()或globals()。

所以我的问题是(至少)两方面的:

1. vars()或确切地说vars()[x] = y到底是做什么的,

2,这本词典的范围是什么(在编写更大的程序时我需要记住的是

3.这是否是好的编程习惯。

提前致谢!

javascript – 渲染Jbuilder模板并将字符串分配给gon

javascript – 渲染Jbuilder模板并将字符串分配给gon

Gon与Jbuilder很好地配合.特别是,文档告诉我这样使用它

gon.jbuilder template: 'path/to/template.json.jbuilder'

这很好用,但我想缓存模板结果,因此不需要重新渲染模板.因此,我使用了render_to_string,如下所示:

gon.entities = Rails.cache.fetch('entities_json') do
  JSON.parse render_to_string(template: 'path/to/template.json.jbuilder')
end

该方法返回相应的字符串,我必须通过JSON.parse传递它,否则gon变量存储双重编码的JSON字符串.这很烦人,但我不知道怎么解决它.

不幸的是,对render_to_string的这种调用导致整个HTML页面呈现为字符串. HTML已完成,gon变量具有预期值,但突然之间,页面在Chrome中不再显示为HTML.

不知道怎么解决这个问题?

解决方法

看起来您现在可以使用Jbuilder轻松进行片段缓存.这是我在jbuilder的源代码中找到的一个例子:

例:

json.cache! ['v1',@person],:expires_in => 10.minutes do |json|
  json.extract! @person,:name,:age
end

将此应用于您的代码,我们将在您的控制器中保留以下代码:

gon.jbuilder template: 'path/to/template.json.jbuilder'

然后在你的jbuilder视图中,我们将进行片段缓存:

#path/to/template.json.jbuilder
json.cache! ['v1',@model],:expires_in => 10.minutes do |json|
  #your template.json.juilder code in here
end

如果有帮助,请告诉我!

Php将多个字符串分配给单个变量

Php将多个字符串分配给单个变量

是否有更简洁的方法将多个字符串分配给PHP中的单个变量?

我现在喜欢this

<?PHP
$myStr = '';

$myStr .= 'John';
$myStr .= '<br>';
$myStr .= 'Paul';
$myStr .= '<br>';
$myStr .= 'Ringo';

echo $myStr;
?>

我也使用HEREDOC.但还有其他方法吗?

解决方法

如果必须连接大量数据,那么使用数组可能是个好主意.它更干净(不一定更有效率).

$items = array('Hello','How','Are','You?');
echo implode(' ',$items);

python – 如何动态调用类中的方法使用方法名分配给变量

python – 如何动态调用类中的方法使用方法名分配给变量

这个问题在这里已经有一个答案:> Calling a function of a module from a string with the function’s name in Python10个
class MyClass:

    def __init__(self,i):
          self.i = i

    def get(self):
          func_name = 'function' + self.i
          self.func_name() # <-- this does NOT work.

    def function1(self):
          //do something

    def function2(self):
          //do something

我得到的错误:
TypeError:’str’对象不可调用

有人可以帮助这个.我已经尝试了很多排列和组合,但没有用! (注:’self.func_name’也不行)

解决方法

def get(self):
      def func_not_found(): # just in case we dont have the function
         print "No Function "+self.i+" Found!"
      func_name = 'function' + self.i
      func = getattr(self,func_name,func_not_found) 
      func() # <-- this should work!

Python 教程 (7)—— 一文弄懂 Python 字符串操作 (上)| 字符串查找 | 字符串分割 | 字符串拼接 | 字符串替换

Python 教程 (7)—— 一文弄懂 Python 字符串操作 (上)| 字符串查找 | 字符串分割 | 字符串拼接 | 字符串替换

目录
  • 字符串简介
  • 字符串查找
    • 使用 in 关键字
    • 使用 find () 方法
    • 使用 index () 方法
    • 使用正则表达式
  • 字符串替换
    • 使用 replace () 方法
    • 使用正则表达式
    • 使用字符串模板
  • 字符串分割
  • 字符串拼接
    • 使用加号 (+) 运算符
    • 使用字符串的格式化方法
    • 使用 f-string(格式化字符串)
    • 使用字符串的 join () 方法

字符串简介

在计算机编程中,字符串是由字符组成的字节序列。在 Python 中,字符串是表示文本数据的数据类型,由一系列 Unicode 字符组成。字符串可以包含字母、数字、标点符号、空格以及其他特殊字符。实际工作当中,接触最多的可能就是字符串了。

字符串也是 Python 中最基本的类型,Python 中的字符串类型可以使用引号括起来。可以使用单引号、双引号或三引号来定义字符串。

str1 = ''Hello''
str2 = "World"
str3 = """Python"""

可以使用索引运算符([])来访问字符串中的单个字符。字符串的第一个字符索引为 0,最后一个字符索引为 - 1,可以使用负数进行倒序访问。例如:

str = "Hello, World!"
print(str[0])      # 输出 ''H''
print(str[-1])     # 输出 ''!''

字符串还可以通过加号(+)进行拼接,例如:

str1 = "Hello"
str2 = "World"
str3 = str1 + " " + str2
print(str3)   # 输出 ''Hello World''

Python 提供了丰富的字符串方法,用于处理字符串的操作,例如转换大小写、查找、替换等。还有格式化字符串的方法,用来替换占位符以生成特定格式的字符串。字符串类型说简单很简单,因为就单纯的字符串变化,说复杂也很复杂,结合其他相关类型,真的可以变化莫测。

字符串查找

在 Python 中,字符串查找是非常基础的功能,有几种常用的方法可以用来查找字符串中的子串或特定字符:

使用 in 关键字

使用 in 关键字。可以判断一个字符串是否包含另一个子串,这种方式简单方便,在编程当中经常会被用到。

str = "Hello, World!"
if "Hello" in str:
   print("包含 ''Hello''")
else:
   print("不包含 ''Hello''")

使用 find () 方法

使用 find() 方法。可以返回子串在字符串中第一次出现的索引值。如果找不到子串,返回 -1。

str = "Hello, World!"
index = str.find("World")
if index != -1:
   print("子串 ''World'' 的索引值为", index)
else:
   print("未找到子串 ''World''")

使用 index () 方法

index() 方法与 find() 方法类似,但是如果找不到子串,会抛出 ValueError 异常。

str = "Hello, World!"
try:
   index = str.index("World")
   print("子串 ''World'' 的索引值为", index)
except ValueError:
   print("未找到子串 ''World''")

使用正则表达式

Python 提供了 re 模块,可以使用正则表达式来进行复杂的字符串匹配与查找操作,需要说明的是正则表达式的用法千变万化,需要根据实际情况来使用。

import re

str = "Hello, World!"
pattern = r"World"
match = re.search(pattern, str)

if match:
   print("找到子串 ''World''")
   start_index = match.start()
   end_index = match.end()
   print("子串的起始索引为", start_index)
   print("子串的结束索引为", end_index)
else:
   print("未找到子串 ''World''")

上面就是一些常用的字符串查找的方法,可以根据需求选择合适的方法。需要注意的是,这些方法都是区分大小写的。如果想要进行大小写不敏感的查找,可以通过将字符串转换为统一的大小写来实现。

字符串替换

在一些编程当中,字符串替换是非常常见的操作,在 Python 中,可以使用不同的方法来替换字符串中的特定子串或字符,下面是一些常用的方法。

使用 replace () 方法

replace() 方法可以替换字符串中的所有匹配子串为新的子串。

str = "Hello, World!"
new_str = str.replace("World", "Python")
print(new_str)  # 输出 "Hello, Python!"

replace() 方法还可以指定替换的次数,只替换前几个匹配项。

str = "Hello, World!"
new_str = str.replace("l", "L", 2)
print(new_str)  # 输出 "HeLLo, World!"

使用正则表达式

可以利用 re 模块的 sub() 函数来使用正则表达式替换匹配的子串。使用正则表达式可以更灵活地进行替换操作,例如根据匹配结果动态替换内容。

import re

str = "Hello, World!"
new_str = re.sub(r"World", "Python", str)
print(new_str)  # 输出 "Hello, Python!"

使用字符串模板

使用字符串模板可以更加直观地进行替换,将需要替换的部分使用占位符表示。可以在字符串模板中定义多个占位符,并通过 format() 方法传入对应的值进行替换。

template = "Hello, {name}!"
new_str = template.format(name="Python")
print(new_str)  # 输出 "Hello, Python!"

字符串分割

字符串分割是指将一个字符串按照特定标记或规则将其拆分成多个子字符串的过程。将一个字符串分割成多个部分可以方便地处理和操作字符串的不同部分。在字符串分割过程中,需要指定一个分隔符或分割规则来确定拆分的位置。分隔符可以是一个字符,也可以是一个字符串。

假设有一个字符串 "Hello,World!",想将其分割为两部分,可以使用逗号作为分隔符,分割 "Hello" 和 "World!" 两个子字符串。

在 Python 中,你可以使用字符串的 split() 方法来分割字符串。这个方法会根据指定的分隔符将字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。在 split() 方法中,你可以传入一个分隔符作为参数,如果不指定分隔符,默认以空格作为分隔符。

# 分割以空为分隔符的字符串
str1 = "Hello World"
split = str1.split()
print(split_result)  # Output: [''Hello'', ''World'']

 分割以逗号为分隔符的字符串
str = "Apple, Banana, Orange"
split_result = str2.split(", ")
print(split_result)  # Output: [''Apple'', ''Banana'', ''Orange'']

# 分割以换行符为分隔符的字符串
str3 = "Line 1\nLine 2\nLine 3"
split_result = str3.split("\n")
print(split_result)  # Output: [''Line 1'', ''Line 2'', ''Line 3'']

字符串拼接

字符串拼接看起来好像很简单,但是如果需要按照某种规则来拼接的话,可能也是需要一些方法的。在 Python 中,你可以使用多种方式进行字符串的拼接。

使用加号 (+) 运算符

使用加号 (+) 运算符,这是最简单的字符串拼接方法,直接通过 (+) 运算符将两个字符串拼接起来。

str1 = "Hello"
str2 = "World!"
result = str1 + "," + str2
print(result)  # 输出: Hello,World!

使用字符串的格式化方法

字符串的格式化方法通过占位符 {} 插入变量或表达式的值,并使用 format() 方法传递要换的内容。format() 方法可以接受多个参数,按照传入的顺序替换占位符。

str1 = "Hello"
str2 = "World!"
result = "{},{}".format(str1, str2)
print(result)  # 输出: Hello,World!

使用 f-string(格式化字符串)

f-string 是 python 新引入的一种字符串格式化的简便方法,它在字符串前加上 f 前缀。在 f-string 中,可以直接在花括号 {} 中引用变量、表达式或函数调用,并将其值插入到字符串中。

str1 = "Hello"
str2 = "World!"
result = f"{str1},{str2}"
print(result)  # 输出: Hello,World!

使用字符串的 join () 方法

join () 方法可以将一个可迭代对象中的元素连接成一个新的字符串。它的工作原理是在指定的分隔符上使用调用该方法的字符串作为粘合剂,将可迭代对象中的每个元素连接起来。在示例中," ".join([str1, str2]) 使用空格作为分隔符将列表 [str1, str2] 中的元素连接起来。

str1 = "Hello"
str2 = "World!"
result = ",".join([str1, str2])
print(result)  # 输出: Hello,World!

需要注意的是,使用加号 (+) 和 join 进行字符串拼接时,需要保证所有操作数都是字符串类型。如果有其他类型的对象,需要先将其转换为字符串再进行拼接。而使用字符串的格式化方法和 f-string 则可以直接将其他类型的对象插入到字符串中。

更多精彩内容,请关注同名公众:一点 sir(alittle-sir)

关于Python:使用vars将字符串分配给变量的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于javascript – 渲染Jbuilder模板并将字符串分配给gon、Php将多个字符串分配给单个变量、python – 如何动态调用类中的方法使用方法名分配给变量、Python 教程 (7)—— 一文弄懂 Python 字符串操作 (上)| 字符串查找 | 字符串分割 | 字符串拼接 | 字符串替换的相关知识,请在本站寻找。

本文标签: